Java: DXSearch.findExecutions generalizes and replaces findJobs.

DXSearch.findExecutions supports queries on the following new fields:
class, includeSubjobs, name (including exact match, glob, and regexp
search), executable, tags, properties, rootExecution, originJob,
parentJob, parentAnalysis, state. It also supports requesting the
job/analysis describe data with includeDescribeOutput.

Compatibility note: although this change is breaking, if you didn't hold
any references to FindJobsRequestBuilder or FindJobsResult (i.e. you
formulated and executed your query in one line) no changes are likely
needed to your code. If you did, change instances of
FindJobsRequestBuilder to FindExecutionsRequestBuilder<DXJob> and
FindExecutionsResult<DXJob> respectively.

Ancillary changes (non-breaking):

* DXExecution provides factory methods getInstance and
  getInstanceWithEnvironment that return a DXJob or DXAnalysis as
  appropriate.

* The DXExecutable interface now requires the method getId, same as
  provided by DXObject (without which, instances of DXExecutable are not
  terribly useful).

* DXSearch.findDataObjects supports compound queries on tags for parity
  with the new functionality in findExecutions. Use the class
  DXSearch.TagsQuery to create such queries.

* DXDataObject.Builder.addTags and addTypes accept any
  Collection<String> instead of just a List, and they may now be called
  more than once to append to the tags/types to be set.

* DXJob.Describe and DXAnalysis.Describe inherit common fields from
  DXExecution.Describe.

* DXJob.Describe and DXAnalysis.Describe support getProperties and
  getTags for retrieving job metadata. (However,
  DXAnalysis.Describe.getProperties won't actually be functional until
  DXAnalysis supports requesting custom Describe fields, since for
  analyses, properties are not among the default fields.)

* ExecutableRunner supports addTags, putProperty, and putAllProperties
  for setting executable metadata.

* ExecutableRunner.dependsOn now accepts any DXExecution instead of only
  DXJob objects.

* The following methods in ExecutableRunner were renamed to be
  consistent with those in DXDataObject.Builder (delegate methods are
  left for compatibility): inFolder -> setFolder, inProject ->
  setProject, withDetails -> setDetails, withInput -> setInput, withName
  -> setName, withRawInput -> setRawInput.