Added an Aligned Allocator

This is an allocator conforming to the standard allocator interface
which guarantees allocation at specified boundaries in memory.
Added a variation of c_matrix - c_matrix_aligned

ublas::c_matrix_aligned is a variation of ublas::c_matrix, which uses a
c-array implementation of a matrix and also guarantees a alignment to
specified boundaries of the c-array within.
Added the fast matrix-matrix multiplication

Added the preliminary implementation of a matrix-matrix multiplication.
This implementation uses OpenMP (use -fopenmp when compiling),
vectorization, caching mechanisms and a faster implementation of a
matrix-matrix mulitplication to boost its performance.