Enforce current certificate retrieval behaviour

There appear to be no tests for retrieving certificates from the v2 api.

When you return a string from a webob request it inserts it as the body
in a standard WebOb Response. Because it returns a WebOb Response the
standard encoding behaviours in wsgi are not enforced and and all
responses are returned as straight text/html.

We can't change the behaviour of the certificate retrieval because it
will fail to be retrieved by auth_token middleware.

Change-Id: I8394f7ad2cc5a8f90b860170c2a5e3ecf334ac96
Make Pecan the root routing framework

Replace the core of keystone routing with Pecan. All the original
controllers are still used and handed off if there is not a valid pecan
route (which is only versioning now).

There are a number of changes here together because they don't
always work separately. Things like moving exception handling to a hook
can work individually but is difficult to mix and match with the
existing infrastructure.

In this patch we start to separate the v2 and v3 APIs into individual
folders that can be continued later.

Blueprint: keystone-pecan
Change-Id: I0172ced01bb4017d184f1d2091dba7444e59df8b