Adding Hadoop OutputFormat, RecordWriter to handle database connection, ...

I made changes to the way we commit transactions to the database. The patch includes Hadoop's OutputFormat and RecordWriter implementations that give us a lot more control over how connections are opened, closed and transactions committed. PhoenixHBaseStorage is a lot better encapsulated now.

The next piece of work would be to implement an OutputCommitter that will allow us to rollback in case of MR task failures. Let's discuss more on how we would want to handle failure scenarios before moving to that.