Support searching job executions by job status

As a convenience, allow job execution searches to be filtered by 'status'.
This search key will refer to the "info['status']" field in a JobExecution
record.  Because the "info" dictionary is stored as a string in the database,
and because it contains values from clients that may also contain 'status'
entries in nested objects, a substring search filter on the query is not reliable.
Instead results are filtered by Sahara after they are returned from sqlalchemy.

Partial-Implements: blueprint enable-result-filtering
Change-Id: I090b46514c7c920c3cac1a59a45e527ff87e488d
[CDH] Add validation for spark

We add validation code for spark service. SPARK_YARN_HISTORY_SERVER
number should be 0 or 1, and it requires YARN service existing (we
use RESOURCEMANAGER process number to check).

Closes-Bug: #1398679

Change-Id: If96ce6a13005ba2a54dc4a1b060f98405ff67cde
Add integration test for Hive EDP job

Change-Id: Ia6472d0ba9c92793aa53c7294233442286d561ad
Closes-bug: #1277239
Merge "Support searching job executions by job status"
Merge "Add integration test for Hive EDP job"
Merge "[CDH] Add validation for spark"