check for already existing content-length headers before replacing them
don't let flask automatically set the content length
only return a flask response when necessary for setting content-length
remove spurious newlines in sts responses
Allow returning http errors with exceptions

before:
    def my_response_method(self):
        ...
        if error:
            return template, {'status'=400}

after:
    def my_response_method(self):
        ...
        if error:
            raise MyResponseError("bad thing happened")
where MyResponseError inherits from HTTPException
Fix: Preseve status code in header when != 200

before:
    reply: 'HTTP/1.1 400 Bad Request\n'
    header: date: Wed, 16 Apr 2014 00:30:07 GMT
    header: content-type: text/plain; charset=utf-8
    header: content-length: 286
    header: server: Python/HTTPretty
    header: status: 200
    header: connection: close

after:
    reply: 'HTTP/1.1 400 Bad Request\n'
    header: date: Wed, 16 Apr 2014 00:32:45 GMT
    header: content-type: text/plain; charset=utf-8
    header: content-length: 286
    header: server: Python/HTTPretty
    header: status: 400
    header: connection: close

Note how status and reply http did not match before but do now.
Implement ec2 dhcp_options
Merge pull request #122 from IlyaSukhanov/master

implement dhcp_options
[Block Device] Add block device mapping to launch config backend
Switch to fork for now
Fix some merge issues, add block device parsing
Fix tests when using a working boto version
Merge pull request #102 from andrewgross/feature/block-device-mapping

[Block Device] Add block device mapping to launch config backend
0.2.22
Implemeted bucket.delete_keys closes #124
Merge pull request #125 from gabe-untapt/delete_keys

Implemeted bucket.delete_keys closes #124
Added instance_type support to instances
Added subnet_id support to instances
Added key_name support to instances
Allow passing security groups by ID when creating instances