Implement copy_image_to_volume and copy_volume_to_image on nfs backends

NetApp branch backport for stable/grizzly.

Fixes: bug #1177288
Change-Id: I1c034de4acf13c52e399ba4623a0c8f2110fd695
(cherry picked from commit 7ad6ac41c45e5792c6d9cdac0bcce21976e4ef62)
Call to_primitive on volumes.rpcapi.create_volume

cinder.volume.rpcapi.create_volume does not convert the request_spec to
primitive before casting the request. This makes requests containing non
primitive types to fail. For example:

cinder create --metadata=Type=test --source-volid $VOLID 1

This will create a new database record and call create_volume on
volume.rpcapi.  This will fail because VolumeMetadata won't be
serialized correctly when calling cast. This, however, is not True when
--source-volid is not passed because in such case,
scheduler.rpcpai.create_volume will be called, which converts
request_spec to primitive correctly.

Closes-Bug 1213964

Conflicts:
	cinder/volume/rpcapi.py

(cherry-picked: 587eb5a6b9acc9f02eee1147dbaafb3782c295d5)

Change-Id: I4b91687cc1e5c933bdb3b04d8560b0500da26541
Merge "Call to_primitive on volumes.rpcapi.create_volume" into stable/grizzly
Merge branch 'origin/stable/grizzly' into stable/grizzly