[FLINK-758] Add count operator to DataSet

- Adds a count operator to DataSet:

```java
DataSet<String> text = env.fromElements(
    "Who's there?",
    "I think I hear them. Stand, ho! Who's there?");
DataSet<Long> count = text.count(); // 2
```
- Adds an all (ungrouped) reduce variant, which allows to specify an initial value to the reduce function
- Adds an utility method to InstantiationUtil to serialize a record to a byte array
- Fixes some javadocs warnings in DataSet

I've tested the count operator on a cluster with DOP 1, 200 and verified the results with `cat | wc -l`.
Using a non-combinable GroupReduceFunction for counting is unnecessarily inefficient.
We could extract the key fields using a Mapper and add a count-1 and use a ReduceFunction as well.
This requires a few cases due to different key types but should be the way to go.