1. Added a new IR node "Densematrix_new" to represent allocation of a
new Densematrix. This may not be the best way to do it, but I failed to
get the right code to be generated in any other means. This new IR node
basically reifies code that allocates a DenseMatrix.

2. Added corresponding code in DenseMatrixOpsExp to generate kernel code
to allocate the matrices. Seems to work fine for C++. However, currently
I emit everything into one file, as it seems to suffice. Maybe emit them into different files?

3. Added a very rudimentary driver code that will include the kernel
code and its creators. I've to somehow connect the two, and be able to
compile+run this code from within OptiML. A very hacky solution is
likely coming up for the short term.