Feature/handle close event

- Handle the SESSION_CLOSE event for outbound messages
- Added some tests
Rather swap the JSON transform around like so:
```python
 self.assertEqual(
            json.loads(response.delivered_body),
            {'missing_parameter': ['msisdn']})
```
There are multiple legal JSON encodings for most data, and things like dict key ordering can cause two equivalent objects to have different encoded forms.