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. 
The `RuntimeArguments` is a utility class. I think it's better to keep it as a util class (only stateless static helper methods) and define the scope enum as `RuntimeArgumentScope` or `RuntimeArgument.Scope`.

Currently we don't have the `RuntimeArgument` class, but just a `Map<String, String>`. However since we are introducing more complex structure than a `Map<String, String>`, I think it make sense to have the `RuntimeArgument` class defined and exposed through `RuntimeContext`. We can still keep the method that returns `Map` and add a new one that returns `RuntimeArgument`, or we can actually break the backward compatibility in 2.6 (since we already changed some configure method to configurer base already).