Add titan-solr to titan-all

Since titan-dist (which builds the zipfiles) relies on titan-all, this
also adds titan-solr to the zipfiles.
(cherry picked from commit fa66b552f879c3feb2de22b54330f20b88e6aa8d)
Manage the spatial4j version in top-level pom

Spatial4j is declared as a dependency in titan-core and in titan-solr.
The version is now controlled from the top-level titan pom.  This was
necessary when compiling with an older, pre 4.8.1 Solr version that
had a different Spatial4j dependency version.
(cherry picked from commit 6796f4d38f45149aff6a8f850236acf455ffc1c5)
Fix bogus copy-pasted section header in solr docs
(cherry picked from commit bf6faa1e16cbebf74248a0b0ac1fa6af68f6324c)
Expand the manual Solr field def paragraph a bit
(cherry picked from commit d816ef10539321070afe9f7096dc12ee9460dbf2)
Add sample config for Cassandra + Solr
(cherry picked from commit 1be6fa7f048abadb4944b3df27acf18b69c8906d)
Flesh out Solr dynamic fields docs a bit
(cherry picked from commit 3e44574436ba5522baf8904775a94d1bdb5dc28a)
Add Solr troubleshooting entry on JTS jar

Solr can throw an exception during core creation when the jts jar is
absent from the Solr daemon classpath and schema.xml defines geo
fields.  This is a consequence of Spatial4j declaring JTS as an
optional dependency.

This commit adds a troubleshooting entry to the Solr docs that
summarizes the resulting exceptions and describes determination of the
appropriate JTS version to install.
(cherry picked from commit f741f8b757cc44a100f9c928e97c2732116e1f07)
Add a Solr doc section specific to DSE

This commit fills the formerly-empty DSE Search section under the Solr
doc chapter.  The steps were tested on DSE 4.5.2 and a 0.5.1-SNAPSHOT
version shortly before 0.5.1 went final.
(cherry picked from commit c7ed2ae963fc615c8d2cf867ce9277f3faa422a8)
Add Solr chapter to docs TOC
(cherry picked from commit 6f44e05d625ca3c4cf1168f1d632dba6a145ef94)
Make doc xref links same color as external links

There was no real reason for xref links (internal to the
documentation) to be different color from links to external resources.
The xref color was also a very dark grey bordering on black, making
them barely stand out as links.  Now xref links are the same bright
red as external links.
(cherry picked from commit d2b037a0d68a19916e69e7e7b8f4f5e613272df0)
Some minor typo fixes in Solr docs
(cherry picked from commit 4c0be5e4b5a9075363a1e5e3183c3be700445205)
Assembly & sample conf file templates refactoring

This is for #743 and #762.

This commit does a couple of related things.  I could probably pull
them into separate commits with some effort and additional testing to
make sure the split was clean, but they've been gradually maturing in
my git-stash for a while as a single changeset anyway.

1. The "filesystem" assembly descriptor, which copies files to the
   root of the repo (like bin/gremlin.sh) for testing during
   development, now just includes a component called "common" and
   nothing else.  The "archive" assembly descriptor, which builds the
   zipfiles, also includes this component, plus a second for
   html/javadocs and a third for the readme-style text files in the
   root of the archive.  This change eliminated the copy-paste
   duplication between the zipfile and root-of-dev-repo assemblies.
   The clean goal has also been updated to delete up rexhome and
   examples in the root of the repo, since the filesystem descriptor
   now includes those via the common component.  This fixes #762.

2. The sample Titan conf files now pass through an additional
   preprocessor called ConfigurationFileFilter.  This replaces lines
   of the form #TITANCFG{key=value} with a word-wrapped multi-line
   comment including information from the ConfigOption associated with
   key, including the description, default value, data type, and
   mutability.  For mutabilities FIXED, GLOBAL_OFFLINE, and GLOBAL,
   there's also an tip to use the Management System API and reminder
   that changes to the value in the file have no effect after Titan is
   first started.  After this comment appears the actual key=value
   pair on a line by itself.

   After ConfigurationFileFilter has completely processed the input
   file and written to a separate output file, it opens and reads the
   separate output file with ConfigurationLint.  ConfigurationLint
   checks that the file parses as a PropertiesConfiguration and that
   every key is associated with a Titan ConfigOption.  Furthermore,
   this commit extends ConfigurationLint to execute the verification
   predicate defined in each ConfigOption on its associated value in
   the separate output file.  This serves as a sanity check on
   ConfigurationFileFilter.  If ConfigurationFileFilter or
   ConfigurationLint find an error and exit with nonzero status, the
   build fails.

   This addresses #743.

   I could have probably figured out how to do all this with Velocity,
   but my aims were modest and I couldn't quickly figure out how to
   extend Velocity quite this way, so I just wrote this little utility
   program.
(cherry picked from commit a8bad29d01dd4ab1c0e25b0c25738e72f9b55e05)
Add section anchors inside titan-config-ref
(cherry picked from commit c1a45826313bace95bc9296a58c177170ebd0602)
Execute GotGFactory in a separate JVM

In the aurelius-release profile, titan-dist-hadoop-2 automatically
runs GraphOfTheGodsFactory with a BDB+ES config to generate database
files for future compatibilty testing.  This invocation tends to tip
the Maven JVM over its memory limits when run inside the Maven JVM
using exec:java.  This commit changes it to exec:exec (an external
JVM) to avoid memory pressure inside Maven.
(cherry picked from commit f56fa7e71c4a66b3f95e2eb87a699e3b5f1a132c)
Cleanup/expand some ConfigOption descriptions

Tidying up some setting descriptions that are now included as comments
in the stock configuration files shipped with Titan.
(cherry picked from commit 08bc081e5c8b6b2efcf35f5a590a96b7b56209df)
Fix enum name handling in CommonsConfiguration

CommonsConfiguration assumed that toString returned the same thing as
name, but this is generally untrue (an untrue in particular for the
Timestamps enum).
(cherry picked from commit 4c2c34226686ed91feb230af5c8a7a8e39b70403)
Drop Solr from Hadoop 1 distribution

Solr is still included in the Hadoop 2 distro.  Solr depends on some
Hadoop 2 artifacts.  This commit also defines a pom property in
titan-dist-hadoop-1 that's necessary to bring in the stock Titan
config files.
(cherry picked from commit 4026360cdefe398197e46843a5b3a54a0d336663)
Reflections tweaks for 0.9.9 compatibility

For #778
(cherry picked from commit 7e48bafc8c8f575492dfcd1ce969a7717fb3beeb)

Imports in this cherry-picked commit conflicted with import changes in
the titan09 commit fc5e7deef19ee607d7b464883a5d9b2b36de5453.

Conflicts:
	titan-core/src/main/java/com/thinkaurelius/titan/core/util/ReflectiveConfigOptionLoader.java
Add SolrIndex to reflective opt loader fast path

Avoid triggering Reflections just to discover ConfigOptions defined on
SolrIndex by including it in the set of hard-coded classes checked by
ReflectiveConfigOptionLoader's `loadStandard` method
(cherry picked from commit 0333f4f91345da565aa4e30256656b3819695e56)
Update compat test to set index.search.directory

This probably should not be GLOBAL_OFFLINE in the first place
(cherry picked from commit 66d86db75be32b8ba79141996cb9a3ce9c02b296)