[SPARK] Support for SparkSQL/SchemaRDD

Relates #243
[SPARK] fix test classpath
[DOC] Add docs regarding Spark SQL
[DOC] Fix some formatting in Spark docs
[SPARK] Add object as alternative to implicit imports

Refactor internal function to provide an utility class/object when
implicit imports are not desired
Move spark.api.java package to spark.rdd.api.java for consistency reasons
[DOC] Add section on EsSpark(SQL)
[DOC] Add mention of structured data requirement
Add commons-cli dependency to Hadoop2 jar
Add instruction on node restart

Relates #290
[HIVE] Validate field extraction

Check whether the field indicated by the user is present in the table
schema to avoid NPE.

Fix #259
[HIVE] Validate field extraction

Double check JSON input (which has a different schema)

Relates #259
[HIVE] Validate field extraction

Eliminate table clash in tests
Relates #259
[STORM] Limit number of tuple replays

Add option to limit the number of replays of a failing tuple and also
what to do in case of no more attempts

Fix #285
[STORM] Allow declarative fields for EsSpout

The EsSpout can be configured to 'unwrap' the retrieved document
directly into the target tuple. Unfortunately due to Storm's lifecycle
component, the configuration cannot be read from Elastic and needs to
be specified manually.

Fix #282 #286

EsSpout to declare real fields #282

Signed-off-by: Costin Leau <costin.leau@gmail.com>
[STORM] Add docs on EsSpout fields option

Related #282
[SPARK] Add field extractor for SparkSQL Rows
Double check empty data set in case of cleanup

Relates @287
[STORM] Check number of entries triggering a flush
Upgrade to ES 1.3.4/Lucene 4.9.1
Check data size instead of entries (consistency)