Provide error handling for datastore, network, and veewee host ip configuration

Separated out datastore and network selection logic into separate files from create.rb

Added support for validating datastore and network selection, providing sane error messages (with recovery instructions if available). Also includes validation that the compute resource can access the datastore and network desired.

Added error handling on host ip configuration to inform users of available IP addresses for the machine running veewee