engine: Add caching to VdsStatic, VdsDynamic, VdsGroup and VdsSpmIdMap

Since some DAO objects rarely change, it is safe to add an option to read
DAOs from cache. This patch will provide the caching interface and some
example implementations.

Change-Id: Ib72b867c778b5609d5e333c63f5798bdd1a0f55f
Signed-off-by: lzelkha@redhat.com <lzelkha@redhat.com>
Bug-Url: https://bugzilla.redhat.com/870330