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. 
I added it for now, but I would like to rethink this. If we create different aliases for these type names, then we should make sure they work interchangeably. That is, if I create a dataset of type "co.cask.api.data.lib.dataset.File" then I should be able to instantiate it as a "file" - because they are the same. But we currently can't support that.