Update to latest dhall-lang
Fix expectations for tests
Refactor projection typecheck
Multihash prefix on filename
This could be a literal, so may be frozen
New header format
Support \u{XXX} and ban surrogates
implement as Location and use URI internally
Tests can be long and procedure like
Record projection by expression / type
Do not commute multiplication when normalizing
Self-describe CBOR for Expression#to_binary

CBOR.encode(expression) and Expression#to_cbor remain untagged "standard
Dhall" but the default Expression#to_binary now always tags the output
with self-describe CBOR.  This is supported by the standard for decoding
the output will still be compatible with all compliant implementations,
and it makes the binary format easier to identify in the wild.
Headers is probably a Dhall::List

But we map it to strings... just use `to_a` since we're not staing in
Dhall-land anyway.
A whitespace-only last line is still an indent
Fix for #join on empty list
Do not commute generally

The operator is commutative, but that doesn't mean x == False should
become False == x upon normalization.