EC2 additions and name corrections

Updates `ec2` with additional parameters on the structs, and make these match the Amazon API rather than having custom names for fields and methods.

Backwards incompatible changes:
`ec2.Instances` method (which called _DescribeInstances_) called `ec2.DescribeInstances`
`ec2.Instance.AvailZone` now called `AvailabilityZone`
`ec2.Instance.VirtType` now called `VirtualizationType`
`ec2.Instance.IamInstanceProfile` is now of type `IamInstanceProfile` rather than `string`


Basic additions to `ec2.Instance` type:
```go
StateReason           InstanceStateReason
EbsOptimized          bool
LaunchTime            string
OwnerId               string
Architecture          string
Tenancy               string
SecurityGroups        []SecurityGroup
```

Also methods for spot instance types:
```go
InstanceLifecycle     string
SpotInstanceRequestId string

func (i Instance) isSpotInstance() bool {}
```

Added more advanced networking information which lists network interfaces, attachments, private IP assignments, and elastic IP attachments:

```go
NetworkInterfaces []InstanceNetworkInterface
SourceDestCheck   bool
SriovNetSupport   string
```