Feature/file ds

- adds a File dataset interface, also Input/OutputFormatProvider 
- an implementation named FileDataset, including a definition and admin
- Map/reduce runner to support Input/OutputFormatProvider in addition to BatchReadable/Writable
- utilities for scoped runtime arguments ("dataset.<name>.my.property"). 
- unit tests

Please give feedback especially about the APIs. 
Usually I like to have final class instead of prefix grouping constants. E.g.

```java
interface File ... {
  final class Property {
    public static final String BASE_PATH = "base.path";
    public static final String INPUT_FORMAT = "input.format";
    private Property() { }
  }

  final class Argument {
    ...
  }
}
```

And some thinks that putting constants in interface is bad (Effective Java, 2nd Edition, p.98), although I think it's ok in this particular case.