Flatten/unfill applications and builtins when encoding
Remove multi-argument applications

They only exist in binary encoding, so let's keep them there.
Working typechecker
Type inference/checking about half done

Passing unit tests for features implemented so far
Support headers for HTTP import
Binary encoding

Every AST node uses as_json to express the generic structure for
encoding itself.  Expression aliases as_cbor to as_json by default and
then uses as_cbor in to_cbor (aliased as to_binary).

This design is because we need to override the encoding of Double for
CBOR, but want to keep the normal Float value for as_json in case that
is used directly (to avoid surprising the user).
If trying to import from IPFS, fallback to gateway
Update to latest dhall-lang
Run all tests on CI
First pass at import resolution
Tests are long for good reasons
Try on generic visitor
Builtins are part of the standard set
Generic subexpression_map

Make every Expression a ValueSemantics and use the known list of
attributes to map generically over any AST node.

Introduces a conditional, but removes boilerplate from every single
Alpha normalization

Internal flag to disable for acceptance tests from the standard (which
assume beta-only normalization in some cases).  Otherwise, just always
alpha normalize as we go.
Update to fixed tests
Update to latest binary format
Run all tests in CI