IAM classes are now proper extensions of the Resource class

Added some new IAM unit tests to validate that saving and writing IAM classes (InstanceProfile, Policy, Role) yields consistent cloudformation templates. Additionally, test that scenery can correctly identify InstanceProfiles and Roles in a template, and pull them out for modification.

Here's an example of creating some IAM objects for a template:

```javascript
    var p = new Policy('myTestPolicy');
    var effect = 'Allow';
    var action = [ 
        'cloudwatch:EnableAlarmActions',
        'cloudwatch:PutMetricData',
        'cloudwatch:PutMetricAlarm' ];
    var resource = [ '*' ];
    p.statement(action, effect, resource);

    var r = new Role('myTestRole');
    r.policies( [t.ref('myTestPolicy')] );

    var ip = new InstanceProfile('myTestInstanceProfile');
    ip.roles( t.ref('myTestRole') );

    var t = new Template();
    t.addResource(r);
    t.addResource(p);
    t.addResource(ip);
```

This yields the following JSON:
```json
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "",
    "Parameters": {},
    "Mappings": {},
    "Conditions": {},
    "Resources": {
        "myTestRole": {
            "Type": "AWS::IAM::Role",
            "Properties": {
                "Policies": [
                    {
                        "Ref": "myTestPolicy"
                    }
                ]
            }
        },
        "myTestPolicy": {
            "Type": "AWS::IAM::Policy",
            "Properties": {
                "PolicyDocument": {
                    "Statement": [
                        {
                            "Action": [
                                "cloudwatch:EnableAlarmActions",
                                "cloudwatch:PutMetricData",
                                "cloudwatch:PutMetricAlarm"
                            ],
                            "Effect": "Allow",
                            "Resource": [
                                "*"
                            ]
                        }
                    ]
                }
            }
        },
        "myTestInstanceProfile": {
            "Type": "AWS::IAM::InstanceProfile",
            "Properties": {
                "Roles": [
                    {
                        "Ref": "myTestRole"
                    }
                ]
            }
        }
    },
    "Outputs": {}
}
```