separate paste-deploy configuration from parameters

PasteDeploy configuration contains class names which might change
between releases. Keeping it separate from user-configurable
parameters allows deployers to move paste-deploy ini file out of
configuration directory to a place where it can be safely overwritten
on updates e.g. under /usr/share/

DocImpact

Change-Id: I9292ca6226c8430b93565dedd45cc842742a23e2
Replace assertDictContainsSubset with stdlib ver

Code copied and adopted from unittest.TestCase class from CPython 2.7
stdlib.

Change-Id: Ifae16f947600f7a9d1f8d1a879fd914d0cf4d65e
Merge "separate paste-deploy configuration from parameters"
Add index on expires column of the SQL token Backend

Add migration script to add the index.

bp index-token-expiry

Change-Id: I36934c18979df5037d606d4846b29194750847af
Fixes: bug #1168399
Add KEYSTONE_LOCALEDIR env variable

Part of fixing bug #995287

Syncs these two commits from oslo-incubator:

  Support overriding oslo localedir too
  Add a gettextutils.install() helper function

to get a new gettextutils.install() function which allows the default
localedir to be overwritten via an environment variable.

A few things to note:

 - the gettext.install() call is moved from common.config to the
   toplevel scripts to fix cases (e.g. the legacy auth_token middleware)
   where keystone code might be imported by a program who's default
   translation domain is not 'keystone'.

 - we add a gettext.install() call in keystone.test so that tests have
   the _() builtin installed.

Change-Id: I86562b3a65d371673bb21f7179eecc7602bc0775