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.
Merge pull request #245 from davidlmorton/translated_plans

Translated plans