code hygiene; use six.text_type, escape regexp's, use key function

Some simple code clean up for code hygiene

Need to use unicode() rather than str() to properly handle non-ascii
characters, but to be PY2/PY3 compatible use six.text_type.

Regexp's were formed by string formatting using run-time substitutions
but the substitutions were not escaped. If the substituion contained
regexp metachars the regexp could fail.

The db key was formed by string substituion but this code was
duplicated in many places, introduce a method, key() to eliminate the
code duplication. At the same time introduce the dn() method to
transform the dn to an internal format. Currently the dn() method is a
place holder whose implementation will be added in a subsequent patch.

Change-Id: I1fbb8cf420606c77b1eed346376050f21790a8e1
Add placeholders for reserved migrations

This patchset should land immediately after the opening of the Juno
development cycle.

Implements: bp reserved-db-migrations-icehouse
Change-Id: Ic2f1e06043da34878b06bab5a10d173497fa1cb6
Merge "code hygiene; use six.text_type, escape regexp's, use key function"
Merge "Add placeholders for reserved migrations"