Add Plan versioning management

* Version can now be passed in attribute of the Plan YAML File.
Version attribute is a mandatory field.
* According to the version specified, the appropriate WSME Plan
and Plan Handler are created and called.
* Plan validation is done by the WSME framework.
* How to add a new Plan version (e.g with version 2) ?
 - Add your Plan_v2 WSME object in datamodels
 - Add your Plan_v2_handler in handlers
 - Add init_plan_v2 method in Plan controller.

Change-Id: I7fcc6e11391b9f026768a4afafaaa638c43ec303
Closes-Bug: #1291114
Add diskimage-builder scripts for Jenkins in "build farm"

Change-Id: I933e4dcab2afb2337dfd534768a76f4b6eb429bc
Add jenkins Dockerfile in "build farm"

Change-Id: I889e56010c3d73e508b2450f1645f137f14ac1c7
Add auth_token_info to the context

Change-Id: I60f517e233c498518a8237486004fb13b93ade7b
Add the pipeline API and db object

Migration of the trigger, image builder and heat stack
will be done in later patches.

Just to clarify what the meaning of pipeline is within this patch:
- A pipeline is the association between a plan, a mistral workbook
  and a git trigger. Together they form a working developement "pipeline".

A Pipeline is a running entity not a definition or DSL.
It's more like a heat stack or a mistral execution.

Change-Id: I921662e2d9ae95e72b3cd8622ddff3d5a0235b45
Add triggers and trusts to pipeline

Change-Id: Ie003e006683f0ea09a639735c11e7f3a60792936
Merge "Add auth_token_info to the context"
Merge "Add the pipeline API and db object"
Merge "Add diskimage-builder scripts for Jenkins in "build farm""
Use auth_token_info to initialize solum_keystoneclient sessions

Now we have the token info available in the request context, we can
avoid always re-requesting another token every time a client is
created.

This should be better for performance as it avoids one extra request to
keystone, and it also enables trust-scoped tokens to be more easily
used, since these cannot be used to request another token, thus
authentication will fail with the current scheme.

This is needed for the builder to be used from a mistral task.

Change-Id: Ic03e315a7a7fb29bd8a499032b61befea260ab7e
Partial-Bug: #1317293
Merge "Add Plan versioning management"
Fix the new hacking rules

Change-Id: I256512780251b6c552af6babac3c0677c204aaaa
Merge "Use auth_token_info to initialize solum_keystoneclient sessions"
Merge "Add triggers and trusts to pipeline"
Merge "Fix the new hacking rules"
Merge "Add jenkins Dockerfile in "build farm""
Fix pipeline API lookup

For consistency the client expects to send pipeline_id not _id.

Change-Id: Ie56aa394aeb6f43f5e05eac6026d98d93139cafe
Fix pipeline delete

We were calling delete instead of destroy

Change-Id: I88fe07fdc36d27daa5c7bda9eef31bbe1b8f1db0
Fix pep errors of recently merged patches

Change-Id: I54e3dd4116ccd5898d6098a5bb6ed0fc4cae82cd
Updated from global requirements

Change-Id: I8b3622b9fafd5e5ea3ec048a18a892d03d2d15fd