Refactored public API to allow for the use of type descriptions instead of loaded types. This allows for a better reuse internally and allows users to define cyclic type dependencies.
Added tests and javadoc for method delegation. Added toString and equals/hashCode methods for several helper classes where they were not yet implemented.