Base.get_engine honor allow_global_engine=False

This change makes it so that get_engine() in
keystone.common.sql.core.Base does not return the global engine
when allow_global_engine is False.

The behavior before could be described like:
If get_engine() has never been called with allow_global_engine=True,
then if you pass allow_global_engine=False returns a new engine.
Otherwise, you always get the global engine (even if
allow_global_engine=False)

The new behavior is:
If get_engine() is called with allow_global_engine=True then
it returns the global engine, otherwise it returns a new engine.

Change-Id: I756b54d9f3984733f56d09c11b2702c3451102f2
Merge "Base.get_engine honor allow_global_engine=False"