Initial revision of an ERCC spike-in QC command.  This needs to be in a pipeline with software results.
A new version of the ERCC spike-in QC that uses existing RNA-seq alignments to a reference and annotation that includes the ERCC transcripts.
Use last_succeeded_build instead of lastest_build
Pass in actual software result rather than using global variable
DelegateResult accepts a user label
RDP: allow cli to take training set name or path; rdp versions require an instantiated training set
Allow plans to validate providers without objects
Don't create temporary object for validation
Translate plans instead of objects

This has (at least) two benefits:
1) it paves the way to get rid of the provider as a dag input.
2) since we were creating and object, and then translating its params,
there was no way to determine the hash of translated params for
SoftwareResult subclasses (or anything that does work in create
generally).  Since we plan to make Reporters into SoftwareResults, this
is a big deal.
Ensure plans don't get translated more than once.

This also makes it clear, if you write out a plan, whether it has been
translated or not.
Add requires_annotations to test classes
Move expected.xml files from allocation to repo

This will make it less annoying to alter anything that affects the
workflow xml that is generated.
Stop passing around provider_json

Since we can now just translate the plan and pass around the translated
plan, there is no need to pass around the translations as well.
Add new params to sanitize BAM file available since Picard 1.108
up the verbosity level for Fgenesh. This will at least give us the command line in the log file when it fails.
Fixes to compilation issues.  Consistant use of hash_ref instead of dereferencing. Add test case.
Add version check for sanitize option.
Remove R library dependency on optparse.
Add correct version parsing.
Remove is_optional when default_value is defined.