Major change in API syntax

This change was done to allow the class to be a bit friendlier
to the memory. The data structure is changed from an array of
rows, where each row is an array of values, to an storing the
values directly on the Matrix instance, with numeric keys. The
metadata for rows/cols is now stored as properties on the instance
(named rows and cols).

Along with this change comes four new methods:
setEmptyData
setIdentityData
setData
getData

You can no longer set the data directly in the constructor,
but you can call setData instead (it will return the instance).