Elasticsearch/Lucene should index fields by their actual name

This pull request makes a backwards incompatible change to make Titan index fields by their proper `String` field name. Before this pull request, Titan instead indexed fields by an internal unique `Long` identifier, which makes it difficult to directly access Elasticsearch to perform queries that are not general purpose enough to be exposed through the Titan API.

An alternative to this approach would be to directly expose discovering the `Long` identifier for the fields, and then an end user could handle converting a string field name to and from that identifier, but I feel that would be pretty painful for the user. Another way would be to expose a "raw query" API, but I feel it would be difficult to make a generic interface. It would be ultimately easier to just to get a reference to the underlying index and query directly against that. I plan to implement this in a later pull request.

There are two main downsides to this approach. First, is that this will force users of Titan 0.3.x to reindex their graphs. Second, there *may* be some overhead by storing the full string instead of an encoded integer, but lucene is pretty efficient about storing documents, so I don't think it will add a significant overhead to Titan's indexing support.

For more details, you can refer to this [gist](https://gist.github.com/erickt/6444959) to show the benefits of this change.

Finally, this pull request does also include some minor code cleanup.