Add explaining comment to loopClosedForm.
Make vtable available to bottom-up rules as well.

This still isn't used in any rules, but I think it is necessary for
predicate optimisation.  We will see.
Remove obsolete comment.
Add some embellishments to the .cabal file.
Work on imperative intermediate representation for code generation.

Unfinished.
Activate futhark-mode for .fut-files.
Add nasty hoist-consumption test program.
An expression that consumes anything is not safe!
Simplify first-order transform slightly.

Specifically, this saves a let-binding and eliminates some duplicate
names.
Add some silly recursive function tests.
Add flymake files to gitignore.
More work on the imperative code generator.

It basically works now, although I still have to make ImpCode
extensible.
Futher work on backend code generation.

C backend can now again do clever things for reshape and split.

Next up: bringing the Bohrium backend back on-line.
Finish up the  new imperative backend changes.
Work on removing .shape field from C runtime representation.

It is now only used for final printing.
Add shape-assertions when internalising reshape.
Disable predicate optimisation for now.
Add size assertions for concat.
Move function splitting into its own module.
Remove some unused imports