Add support to launch instance into a VPC subnet

Add a rudimentary support for launching instances into VPC. Mainly
this means new vpc_subnet_id argument which specifies the
"subnet-xxx" id of the Amazon EC2 VPC subnet. As the subnet can
live only in one Availability Zone then the availability zone argument
is not needed when launching into vpc. Because of this there's
a new way to specify an array of arguments where only one argument
is required.

This patch also refactored away the Launcher::verify_required_options
method as the required options are already checked on the
metadata_launcher.

This commit contains validation fixes suggested in this github discussion
https://github.com/airbnb/stemcell/pull/46
Put Launcher.verify_required_options() back

This function is required to be present when stemcell
is used as an API and the Launcher is one of the main interfaces
on this api.

MetadataLauncher then uses this function to check that
all required parameters are present. Also a new function
create_launcher() is added as the Launcher class needs
to be instantiased before validate_options can call the
verify_required_options() function.
Add private_ip_address option for VPC
fix incorrect specs for attribute merging

in chef, attributes defined at the same precedence levels get deep-merged. attributes
defined at a higher precedence level clobber the attributes at a lower precedence level.
here's an example from a `chef-shell`:

```
chef > node.default.igor = {"a" => "mike", "b" => "joe", "c" => [1, 2, 3]}
 => {"a"=>"mike", "b"=>"joe", "c"=>[1, 2, 3]}
chef > node.override.igor = {"b" => "bob", "c" => [99, 98, 97]}
 => {"b"=>"bob", "c"=>[99, 98, 97]}
chef > node.igor
 => {"a"=>"mike", "b"=>"bob", "c"=>[99, 98, 97]}
```

you can see that the value for `node.igor.c` is NOT `[1,2,3,99,98,97]` but instead just
`[99, 98, 97]`, the value defined at the override level.

the specs here incorrectly stipulate that security groups defined at an override level
should be merged with those specified at the default level, which is incorrect.
fix failing spec for attribute merging
Merge pull request #49 from airbnb/proper_attribute_merging

Proper attribute merging
bump version to v0.7.0
Add support to launch instance into a VPC subnet

Add a rudimentary support for launching instances into VPC. Mainly
this means new vpc_subnet_id argument which specifies the
"subnet-xxx" id of the Amazon EC2 VPC subnet. As the subnet can
live only in one Availability Zone then the availability zone argument
is not needed when launching into vpc. Because of this there's
a new way to specify an array of arguments where only one argument
is required. In addition there's "private_ip_address" option
which can be used to set instance private ip on launch.
Merge branch 'feature/vpc-support2' of github.com:Applifier/stemcell into feature/vpc-support2
Add ec2 ohai hint and fix security_groups to support ids
Add ocular status push
Add elastic_ip_address
Pass elastic_ip_address to launcher
Fix elastic ip association
Fix stemcell to allow wider settings
Merge branch 'master' of github.com:Applifier/stemcell into feature/vpc-support2