Refactoring type value

Now each type value that is backed by an attribute knows how to
instantiate an instance of its value from a string.
We can leverage this to clean up some of the code for them.

A few things...

1. Not sure what's up with Arrays. Why is it even possible to have array
of nodes? That makes no sense. Lets keep the attributes + user defined
types and the primitives (node, port, etc) separate...
2. Fuck checkstyle
3. Removed a bunch of boiler plate from testing. yey.
4. Currently using a sub-abstract class of TypeValue. Maybe it makes more
sense to have instantiate for everything? Maybe use generics?
5. Seriously fuck checkstyle. eg. Look at TestConnectionType and how the
instantiation of noAttributes has the equal sign on a new fucking line.
Fuck checkstyle line limits. I vote we relax line width (warn instead of
fail). This is getting ridiculous.
I really don't support doing this codebase-wide. If you can find a way to do it in the tests only, that's better. Line width is important to code readability and quality.