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. 
Yes, that is what we want. This (and Location) is our abstraction of a file system. But Location only represents paths (like java.io.File), whereas this is a dataset, so it is managed by CDAP and when we add features like lineage, auditing, notifications etc., then this dataset will also get those features. 

An option would be to have dataset type that represents just plain files, and another one that represents files used by MapReduce. But the line is blurry: You may want to write a service that receives files and copies them to HDFS. For that, you don't need the Hadoop-specific functions in this dataset. But then you may want to read that same file from MapReduce or Spark.  So I thought  it makes sense to have a single dataset type, where input and output format are optional.