(maint) Refactor subcommands and support retrieval of multiple vms

This commit refactors the subcommand layout to the layout prescribed by
the `go` tool which should make man pages a little easier to navigate.
This commit also adds functionality to support retrieval of multiple vms
using a space delimited list of pool names after the grab command.
(maint) Abstract http requests out of individual commands

This commit abstracts the handling of http requests to a single Request
function which may be handed arbitrary json in string format. Also
improves the validation of the list command. This commit also adds the
ability to delete multiple vms at once by passing them to the delete
command.
(maint) Move utility functions to their own file

This moves the utility functions to their own file and adds some better
error message by telling the user exactly what names were invalid when
failing to fetch vms.
(maint) Update the Makefile to use multiple .go files

This commit builds the executable for vmpool using any file with a .go
ext in the src directory fixing the Makefile to work with the recent
abstraction changes.
(maint) Un-De Morgan the usage check conditional for list command

This commit changes an `||` (or) in the usage check for list to an `&&`
(and) as it should be.
Merge pull request #2 from ajroetker/maint_support_retrieval_of_multiple_vms

(maint) Refactor subcommands and support retrieval of multiple vms