Added transactionable and non transactionable data store output operator...

...s with pluggable data store writers

Squashed commit of the following:

commit 4d83b6337787456ae86fbad9f43baa3bbfe45088
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Mon Mar 31 12:35:49 2014 -0700

    added process method and removed other methods from data store writer

commit f7c8d1744b2507aecd7c231fa31ead002d9eb8b5
Merge: adcae70 7a0b3b5
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Mon Mar 31 10:48:59 2014 -0700

    Merge branch 'master' of https://github.com/DataTorrent/Malhar into etlOutOper

commit adcae704cbb4f75a3bae5c9d9e882368fe158649
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Thu Mar 27 16:58:31 2014 -0700

    removed AbstractMongoDBConnectable and used MongoDBConnectable

commit c65e49ba4a777100b2ebb966c1e93ad4358e9dbe
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Thu Mar 27 15:57:40 2014 -0700

    added upsert api to DataStoreWriter interface

commit 5a302c70477b45a76df53d703ad3f0cdc0f8e377
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Wed Mar 26 18:49:59 2014 -0700

    deleted records from dbs as cleanup at the end of the tests

commit 5cb9c7e654abd218b12bf0f2b7aae0e5c8670ce5
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Wed Mar 26 15:05:41 2014 -0700

    used existing abstract datastore classes and added transactional output operator

    Conflicts:

    	contrib/src/main/java/com/datatorrent/contrib/db/DataStoreOutputOperator.java

commit 433aca6cf8688aa42b97113dae7fcf66851e2613
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Tue Mar 25 20:11:17 2014 -0700

    cleanup and documentation

commit 8452eeb6b0987f296faf180b50e39486ff7d441d
Author: Ashwin Chandra Putta <ashwin@datatorrent.com>
Date:   Mon Mar 24 18:41:57 2014 -0700

    added datastore interface which can be used for implementing writes and reads from databases