initial integration with MTJ

not really for pulling at this stage, but it sort of works and I have a few comments and questions:

1. the gc root stuff / stack sequences etc confuses me, can you please explain it to me?
2. I'm getting a lot of undefined references when adding the links (these might be the gc roots, or other artifacts [sic] of a partial dump)
3. I might have to add a few features to the  `LinkedSparseMatrix`, but for now there is a subclass for playing with (e.g. for doing iteration of just a row or column... i.e. references and referers respectively)
4. I've avoided using the existing visitors as they rely on the heavyweight `Snapshot` structures and I wanted to come up with the minimal working example to see how much the memory overhead could be reduced. I think it would be really cool to come up with a nice clean set of base case classes (indexed by value classes so we never have to think it terms of `Long`s/`Int`s) that are entirely immutable and hold no references to lookups. This would allow us to separate out the data objects from the storage mechanism.