Use joinedload for system_metadata in db

When moving over to nova.db.api not returning sqlalchemy
objects, objects won't be lazy loaded throughout the code, instead the
entire object will be fetched from the DB in nova.db.api.  This change
will trigger any lazyload bugs due to missing joinedload statements
that weren't previously triggered because the lazyloaded data wasn't
being used (and thus fetched from the DB).

Partially implements bp db-api-cleanup

Change-Id: I0dabf3588be0076a6e651c018a1c83ed23e84872
Merge "Use joinedload for system_metadata in db"