Fix Instance object assumptions about joins

The Instance object was assuming that security_groups and info_cache
were always joined for single instance_get() type queries.  This is a poor
assumption to make.  The object should explicitly ask for info_cache and
security_groups to be included in the DB object when necessary.

Also, we should actually fix sqlalchemy api to not join these always, but
that's probably too large of a change right now.  Instead, make sure we
don't ask to join them twice in the same query.

Fixes bug 1227251

Change-Id: Ib39a3d041904fb5ecebbe152f2fede135a0cdb6f
Merge "Fix Instance object assumptions about joins"