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

- [ ] Add a function for creating diagonal matrices

##### Optional
- [ ] Create a function similar to [numpy.ones](http://docs.scipy.org/doc/numpy/reference/generated/numpy.ones.html)
- [ ] Create a function similar to [numpy.zeros](http://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html)
Looks good to me. NumPy's signature is just like you implemented it:
```
Definition:  numpy.eye(N, M=None, k=0, dtype=<type 'float'>)
Docstring:
Return a 2-D array with ones on the diagonal and zeros elsewhere.

Parameters
----------
N : int
  Number of rows in the output.
M : int, optional
  Number of columns in the output. If None, defaults to `N`.
k : int, optional
  Index of the diagonal: 0 (the default) refers to the main diagonal,
  a positive value refers to an upper diagonal, and a negative value
  to a lower diagonal.
dtype : data-type, optional
  Data-type of the returned array.
```