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'm unclear on how we are envisioning people using this method and the corresponding getOutputLocation method.  In mapreduce the concept of input and output locations make sense, but less so in a flow or service. What should this return if there are no input paths and no output path? Is it useful to get these if we are already wiring up the mapreduce job for the user?