Fix subtle bug when padding arrays
Python 2.6 backward compatible import of OrderedDict
Implement an autotuner in COFFEE

The autotuner evaluates the licm, ap, vect, split, and blas
optimizations by running them on a fake mesh (i.e. kernels are invoked a
number of times, but the actual fields are not read from a real mesh).
When licm and split are evaluated, assembly and integration loops are
also unrolled in several ways (this is driven by some heuristics).
Finally, the fastest optimization is picked and proper code is
generated.
Split now properly update expressions dictionary
Track optimizations properly
Pass buffer name properly to addto_scalar
Autotuner requires explicit setting of unroll optimization
Implement loop permutation and transposition of storage layout
Avoid aligning buffers which are not multiple of vect length
Avoid adjusting bounds where dangerous
Force simdization with a pragma (intel compiler only)