Elementary JSON support comes from simple substitution.
Updating StepDescriptor to use JSONObject too.
Show that we can look up Describable subtypes, even without JenkinsRule.
Updated most everything, but unsure how to handle ParallelStep.
Merge remote-tracking branch 'origin/master' into DescribableHelper-JSON

Conflicts:
	basic-steps/src/main/java/org/jenkinsci/plugins/workflow/steps/CoreStep.java
	cps/src/main/java/org/jenkinsci/plugins/workflow/cps/DSL.java
	cps/src/test/java/org/jenkinsci/plugins/workflow/cps/SnippetizerTest.java
	scm-step/src/main/java/org/jenkinsci/plugins/workflow/steps/scm/GenericSCMStep.java
	step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/AbstractStepDescriptorImpl.java
	step-api/src/main/java/org/jenkinsci/plugins/workflow/steps/StepDescriptor.java
	step-api/src/main/java/org/jenkinsci/plugins/workflow/structs/DescribableHelper.java
	step-api/src/test/java/org/jenkinsci/plugins/workflow/structs/DescribableHelperTest.java
Going back to Map<String,Object>.
Trying to lay out the expected semantics.
Merge remote-tracking branch 'origin/master' into DescribableHelper-JSON
Updating tests and docs with new CoreStep/GenericSCMStep syntax.
Initial support for binding maps.
Context-sensitive map binding.
SimpleBuildStep needs special handling.
Throwing out Jenkins.getDescriptorList for now and doing custom filtering on Descriptor extensions.
Do not misinterpret a struct map passed as the value of a single mandatory parameter as a map of parameters.
Cannot omit the default parameter name for CoreStep & GenericSCMStep.
Or if you do, the value must not syntactically be a map expression (as opposed to a variable referring to a map).
This is due to an apparent limitation in Groovy syntax.
(Manifested as an UnsupportedOperationException with opaque stack trace in groovy-cps.)
Yet another syntax which works. Which should be picked?
Going with the shorter syntax.
Comment.
We also intend to generate the shorter syntax.
Can also use shorter syntax for GenericSCMStep, but need to move special treatment of the value key to DSL/Snippetizer.
This is probably where it belonged anyway: it is syntactic sugar specific to Groovy.