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.