Add Solr as New Index Provider for Titan

We've been working to integrate Titan and Faunus into our project as its data model fits closely with our requirements. However, we have an existing need to use Solr instead of Lucene or ElasticSearch.  

This fork contains a new Apache Solr based Index Provider that works with the traditional HTTP Solr Server and the SolrCloud Server that runs with Apache Zookeeper. It's still pretty new but it currently passes all tests in the IndexProvider unit tests.  I have another github site containing instructions on how to get Solr set up in your development environment to test out both modes of Solr (HTTP and Cloud).

You can check the instructions out at: https://github.com/tenaciousjzh/titan-solr-cloud-test

If anyone chooses to run Solr as their Index Provider, they'll need to know in advance that Solr does not work quite like Elastic.  They need to configure Solr with the correct schema first before telling Titan about it. The example github project previously mentioned ships with 4 schemas that are used to create Solr cores for each of the different stores mentioned in the unit tests. 

Please feel free to contact me should you be interested in merging this functionality into Titan.  Thanks in advance for your consideration and I look forward to hearing from you.

Best Regards,
Jared Holmberg
I think this should be named maybeCommitChanges() because it only does commit when BATCH_SIZE or reached or it was a last batch.