Java: DXSearch.findExecutions generalizes and replaces findJobs.

* DXSearch.findExecutions supports queries on the following new fields:
  class, includeSubjobs, name, executable, tags, properties,
  rootExecution, originJob, parentJob, parentAnalysis, state; as well as
  requesting the job/analysis describe data with includeDescribeOutput.

  Compatibility note: 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. 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.