Do not commute generally

The operator is commutative, but that doesn't mean x == False should
become False == x upon normalization.
Update to latest dhall-lang

* Allow selection from union Kind or Sort
* End of line is always \n (for multiline test case)
* Multiline of only blank lines should not error
Switch IntegrityCheck encoding to multihash
Split IntegrityCheck and NoIntegrityCheck
Split IntegrityCheck and NoIntegrityCheck
Refactor builtins

The fill/unfill code is much simpler now
Not using hexdigest in the constructor anymore
IntegrityCheck stores raw hash internally
Run dhall-lang binary-decode tests
Decode unions the same way as_dhall makes them
Use Dhall names for everything that encodes untagged
Disambiguate hoisted union tags properly

An array may contain two nomnatively-equivalent types who are
structurally different -- so they need different (but related) union
tags since they will not share a type.
Enum should not have itself in the alts
More useful to_s for AST nodes
Normalize list element types before comparing
Facility to flatten let blocks
Prefer double quotes for strings
Update and run latest alpha-normalization tests
Initial dhall-compile script

Add to build that after tests pass we compile the whole Prelude
Fix for stack level too deep on long comment