Split out NovaTimestampObject
Split out NovaTimestampObject

With the addition of new tables/objects for cells v2 not every db backed
object model will contain deleted and deleted_at columns.  This splits
out some components that can be used on their own, while
NovaPersistentObject does not change in order to avoid updating every
object currently using it.

Originally I tried pulling the fields out into NovaTimestampObject and
NovaSoftDeletableObject and having NovaPersistentObject inherit from
those.  This did not work because fields could only be inherited from
one parent class.  Instead I had to duplicate some fields in another
class.

The obj_as_admin context manager was moved into the base class since it
was only on NovaPersistentObject during the split out of
oslo.versionedobjects (o.vo) but should really be in a place where all
objects have it added.

Change-Id: I556d93741f1ee965c960c6099fbf2c57f31c6744

ted-gould/nova,Tehsmash/nova,shail2810/nova,NeCTAR-RC/nova,CCI-MOC/nova,gooddata/openstack-nova,edulramirez/nova,edulramirez/nova,jeffrey4l/nova,zaina/nova,cloudbase/nova,hanlind/nova,tudorvio/nova,hanlind/nova,mandeepdhami/nova,raildo/nova,rajalokan/nova,mandeepdhami/nova,klmitch/nova,zhimin711/nova,cyx1231st/nova,double12gzh/nova,alvarolopez/nova,BeyondTheClouds/nova,BeyondTheClouds/nova,bgxavier/nova,CCI-MOC/nova,cloudbase/nova,JioCloud/nova,mahak/nova,isyippee/nova,dims/nova,eonpatapon/nova,devendermishrajio/nova,JianyuWang/nova,Tehsmash/nova,kimjaejoong/nova,dims/nova,noironetworks/nova,Stavitsky/nova,vmturbo/nova,isyippee/nova,barnsnake351/nova,klmitch/nova,mahak/nova,Francis-Liu/animated-broccoli,jianghuaw/nova,TwinkleChawla/nova,CEG-FYP-OpenStack/scheduler,rajalokan/nova,openstack/nova,akash1808/nova,CloudServer/nova,varunarya10/nova_test_latest,rahulunair/nova,rajalokan/nova,vmturbo/nova,devendermishrajio/nova,gooddata/openstack-nova,BeyondTheClouds/nova,thomasem/nova,j-carpentier/nova,iuliat/nova,dawnpower/nova,watonyweng/nova,klmitch/nova,vmturbo/nova,blueboxgroup/nova,tangfeixiong/nova,jianghuaw/nova,MountainWei/nova,CloudServer/nova,belmiromoreira/nova,akash1808/nova,yatinkumbhare/openstack-nova,felixma/nova,yatinkumbhare/openstack-nova,petrutlucian94/nova,scripnichenko/nova,bigswitch/nova,jeffrey4l/nova,varunarya10/nova_test_latest,yosshy/nova,zaina/nova,hanlind/nova,scripnichenko/nova,LoHChina/nova,alaski/nova,mikalstill/nova,adelina-t/nova,ted-gould/nova,sebrandon1/nova,takeshineshiro/nova,apporc/nova,alexandrucoman/vbox-nova-driver,nikesh-mahalka/nova,dawnpower/nova,ruslanloman/nova,zzicewind/nova,barnsnake351/nova,sebrandon1/nova,belmiromoreira/nova,whitepages/nova,blueboxgroup/nova,iuliat/nova,CEG-FYP-OpenStack/scheduler,Juniper/nova,openstack/nova,gooddata/openstack-nova,openstack/nova,jianghuaw/nova,whitepages/nova,mikalstill/nova,Juniper/nova,bigswitch/nova,watonyweng/nova,mikalstill/nova,double12gzh/nova,MountainWei/nova,devendermishrajio/nova_test_latest,tealover/nova,gooddata/openstack-nova,jianghuaw/nova,cernops/nova,tudorvio/nova,mahak/nova,apporc/nova,cyx1231st/nova,akash1808/nova_test_latest,JioCloud/nova,joker946/nova,rahulunair/nova,petrutlucian94/nova,Francis-Liu/animated-broccoli,ruslanloman/nova,nikesh-mahalka/nova,JioCloud/nova_test_latest,cernops/nova,tealover/nova,eonpatapon/nova,klmitch/nova,yosshy/nova,shail2810/nova,fnordahl/nova,alexandrucoman/vbox-nova-driver,Juniper/nova,mmnelemane/nova,JioCloud/nova_test_latest,JianyuWang/nova,Stavitsky/nova,noironetworks/nova,takeshineshiro/nova,phenoxim/nova,LoHChina/nova,akash1808/nova_test_latest,fnordahl/nova,j-carpentier/nova,zhimin711/nova,vmturbo/nova,mmnelemane/nova,bgxavier/nova,adelina-t/nova,kimjaejoong/nova,sebrandon1/nova,TwinkleChawla/nova,rajalokan/nova,cloudbase/nova,tangfeixiong/nova,zzicewind/nova,Juniper/nova,thomasem/nova,NeCTAR-RC/nova,phenoxim/nova,rahulunair/nova,joker946/nova,raildo/nova,felixma/nova,alaski/nova,alvarolopez/nova,devendermishrajio/nova_test_latest,cernops/nova