Matrix generation

Matrices may be of arbitrary size and are populated with random numbers
when initialised.
Add Functions to:
- print matrix of given size
- zero out a matrix of given size
- populate matrix of given size with random numbers between 0 and a
  given limit
- destroy (free memory from) matrix of given size
- generate matrix of given size, populated with numbers between 0 and a
  given limit
- Main