Add API Response class for more complex testing
Add API Response class for more complex testing

the api client .api_(get|delete|post|put) do useful encoding/decoding
of the request/response from dictionaries, and to dictionaries. For
negative and functional testing we're going to often need the status
code as well.

This creates an APIResponse class which wraps and decodes the Requests
library response that is returned. That provides easy access to the
decoded json, as well as access to things like status code and
headers.

It's used in follow on tests to make them more concise.

The convenience methods in the test client (such as get_server) are
adapted to return the same information as before, but through this new
method. These will be further documented in future commits.

Change-Id: I692cbc1a39c3802799de45b4c40306fd717feabf

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