serialization - types only

Only type defs for now, will add in the actual stuff once this is okay'd.

Sort of odd way of getting all the maps but the alternatives are exposing them directly or using reflection, both of which I feel are worse.

Oh, and checkstyles suck... it dies on java 8 features (lambdas).
I don't understand why this method exists. Looking at this interface from a usability point of view, this doesn't make sense -- calling `Schematic.serialize()` should perform serialization, but technically this doesn't do that at all.

The `Schematic` should not in any way be responsible for knowing how serialization or deserialization works, as long as we are using other classes to do those jobs. Those classes can call functions on the `Schematic` to get information that they need, but the actual job of serialization/deserialization should not depend on logic that the `Schematic` is responsible for carrying out.

My recommendation here is to refactor this code into `SchematicSerializer` such that the serializer gets this data (e.g. `userDefinedTypes`, `portTypes`, etc.) from the `Schematic` and then calls these functions (`addUserDefType()`, etc.) on itself. Then all the serialization logic is self-contained.