Convenient functions for Matrices

This PR addresses issue #275. A function similar to [NumPy's eye function](http://docs.scipy.org/doc/numpy/reference/generated/numpy.eye.html) is implemented.

#### TODO

- [x] Add a function for creating diagonal matrices

##### Optional
- [x] Create a function similar to [numpy.ones](http://docs.scipy.org/doc/numpy/reference/generated/numpy.ones.html)
- [x] Create a function similar to [numpy.zeros](http://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html)
`M` and `N` need not to be equal all the time, for example `N` can be 3 and `M` can be 2. So, I guess we can't replace the above lines with a single statement.