Offer buffer-oriented API for I/O (#25)

https://github.com/stratosphere/stratosphere/issues/25

The runtime offered a record-oriented API for data transfers, which
* resulted in unnecessary data (de)serialization,
* complicated the upcoming fault tolerance implementation, and
* blocked more efficient implementations of higher-level operators.

With this commit, the runtime offers a buffer-oriented API for the
output side (sending), which is oblivious to records. The buffer
oriented input side (receiving) is still to be implemented.
Some cleanup of buffer oriented output api.
Added optional timing printouts for tests.
Input formats can tell their types to the java data set (no need for double manual configuration)
Collections on tuples need no manual type information
Additional sanity checks
More specific handling of receiver lookup failures when cancelling tasks.