Refactor type string parser into own class TypeInfoParser
Move TypeInformation to stratosphere-core
Introduce TypeInformation at lowest Operator level

Operator now has an OperatorInformation that holds TypeInformationS for
output types (and input types for unary and binary operators).

This touches a LOT of stuff but will allow the removal of the separate
JavaAPI plan operators and other redundant code.

There is a new RecordTypeInfo that operators create behind the scenes.
The *Source and *Sink operators are now Record specific as to not break
existing programs. There are agnostic base classes with the *Base
suffix. Same is true for the iteration operators. Those operators and
sources/sinks are now in stratosphere-java, only the agnostic ones are
in stratosphere-core.

This was done by Stephan, I squashed it into one commit to make it
easier to see the changes in one place:

Clean up merge with "type information on common operators" branch
  - re-added semantic annotations (API specific)
  - Correct mixup in imports
  - Improve generic typesafety
  - Fix a lot of warnings
  - Add docs / fix doc errors
  - Improve iterator usage in unwrapping cogroup
Fix scala warnings
Add comments to function classes.
Made Scala and Java examples more consistent
Added Java equivalent of Scala RelationalQuery example program