Allow tools to test runtime discovered datasets.
Refactor Tool.collect_primary_datasets into own module.

Want to break it down in smaller pieces and make process more configurable. Will be easier if its outside of monolithic tool class.
Rework parsing of metadata from file names of runtime discovered datasets.

Newer method uses regex and named groups instead of split for more extensible approach to parsing metadata fields during primary dataset collecting. This method will be easier to allow override and configuration of in subsequent changesets.
Allow tool outputs to configure runtime dataset discovery.

Output tags on tool XML datasets may contain any number of child "discover_datasets" elements describing how Galaxy should discover datasests. This new method only works for job_working_directory collection - new_file_path based discovery should be considered deprecated.

Example unit and functional tests describe this new configurability in detail.