Adding non-working part.

  - Fix on different branch
Changing property access.

  - Accessing a non-existing property is an error

  - Also bringing back length (rename to mylength)
Getting rid of redundant defs in Unfold.hs
Adding array builtin functions to prelude.js

  - TODO: Fix generic signature overloads.
DOES NOT COMPILE
Adding support for overloaded generic types.

  - These get resolved in Typecheck and carried over through the function
    expression to Liquid.
Fix in overload resolution.

  - Only use new version if the old one fails.

  - An empty type variable substitution list should not be considered valid when
    instantiating type parameters for overload resolution.
Various fixes in the parser.

  - Some examples broke, but they need a closer look since they have
    disambiguations.
Keep the same raw type among SSA vars.

  ... of the same source variable.

  - In TC adding and removing vars in the environment takes the base var into
    account instead of the actual (SSA) variable that appears in the program at
    that point.
Merge branch 'heapless_devel' into heapless_generic_overload
Adding casts (not just check) in TC at assignment.
Adding failing example.
Adding some tracing.
Change in casting for objeccts.

  - There is no down-casting for object related types. What was a down-cast
    before is now dead-cast.
Fix in union parsing
Trivial variable declarations are KVared

  - Just like functions.
Added more cases in the comparison operators.

  - A few more methods in resistor.
Also scraping specs for qualifiers
Removing the specs from qualifier generation.
Allowing uninitialized variable declarations.