[JENKINS-16364] Add support for Build Dsl job type.

This will allow creating build flow jobs by passing in the dsl block.

This change does not provide support for making the dsl block pretty; it
must be escaped for the resulting job to be pretty printed.

Tests included under a new Spec file.

Usage:

* ```buildDslBlock( <build dsl text, escaped or flat> )```

Example (simple):

* ```buildDslBlock('build ("job1")')```

Example (escaped):

* ```buildDslBlock("parallel( \n { \n \" job1 \" } \n) " )```

Example (passing in a variable's value, so the created job has
the value in the text of the dsl block):

* ```buildDslBlock('build("${BUILD_TAG}")')```
* End result in build DSL node: ```build("my-base-job-dsl-job-12")```

Example (passing in a variable, so the end-result is a created job
that has the variable (and not its value)):

* ```buildDslBlock('build("\${BUILD_TAG}")')```
* End result in build DSL node: ```build("${BUILD_TAG}")```