bfv updates (#100)

This commit creates a DestinationType for the possible block device
destination types.

It allows VolumeSize to be omitted.

Finally, it adds both unit and acceptance tests for all possible ways
that the bootfromvolume extension can be used.

* Renaming and reordering source and destination types

* Erroneous rename
diff --git a/acceptance/openstack/compute/v2/compute.go b/acceptance/openstack/compute/v2/compute.go
index 9b284c3..3392c2e 100644
--- a/acceptance/openstack/compute/v2/compute.go
+++ b/acceptance/openstack/compute/v2/compute.go
@@ -90,6 +90,10 @@
 		},
 	}
 
+	if blockDevices[0].SourceType == bootfromvolume.SourceImage && blockDevices[0].DestinationType == bootfromvolume.DestinationLocal {
+		serverCreateOpts.ImageRef = blockDevices[0].UUID
+	}
+
 	server, err = bootfromvolume.Create(client, bootfromvolume.CreateOptsExt{
 		serverCreateOpts,
 		blockDevices,