(CDAP-381) Refactor MapReduce API to use Configurer style API.

Note: This PR is not intended to make a much better MapReduce API. It does, however, have some small enhancements.
If all specs become simple POJO, then yes we don't need interface. Not going to change that in this PR, since after all API changes are done (CDAP-335), it needs another round of cleanup/moving classes around.