Homogeneous Linear Diophantine Equations

This PR adds the ability to solve a system of homogeneous linear Diophantine equations.
 
I converted python code found [here](https://github.com/sympy/sympy/pull/7241) to C++. These are the to-dos listed there.

* Implement solutions for inhomogeneous case
* Add more tests
* Find solutions in negative integers if possible

These can be implemented in separate PRs. I skimmed through the paper but I don't remember why I put the  last one. Let's think about that after this PR is merged.

Link to the research paper: [An Efficient Incremental Algorithm for Solving Systems of Linear Diophantine Equations](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.47.2737).

#### TODO
- [x] Merge #332 and refactor this PR
How do you know that `T` only contains Integers?