Add subnet and vpc IDs to instance type
Add security groups and source destination checking to instance type, start splitting up
Add stateReason code for instance state transitions
Add architecture to instances
Change instance state reason from just the code to a type
Add enhanced networking to instance type
Add spot instance fields to instance type
Add instance tenancy to the instance type
Reorganise instance type properties
Add ebs optimized flag to instance type
Update a couple of shortened names to full names in instance type (NOT BACKWARDS COMPATIBLE)
Fix iam instance profile being stored as a string
Add instance launch time as a string
Add more advanced network info to instances - network interfaces etc
Add convienience method to check if an instance is a spot instance
Replace AvailZone with AvailabilityZone, and fix tests
Fix incorrectly named ec2.Instances to ec2.DescribeInstances

As a library this should really match the API. Also all the other methods have qualified names,
such as RunInstances, TerminateInstances etc. So a method called Instances makes no sense
Add ownerId into the instance, and fill in when describing instances
Add additional basic instance params - reason & product codes
Add kernelId, ramdiskId, platform and client token to ec2 instance type