DW: Added a check for the submission key

Closes #627
Given the refactor you should DRY this up be removing the two separate cases of assigning `error, instance`, either:

```python
error, instance = create_instance_from_json(username, request) if\
    is_json_request else create_instance_from_xml(username, request)
```

or

```python
create_function  = create_instance_from_json if is_json_request else create_instance_from_xml
error, instance = create_function(username, request)
```

or

```python
error, instance = (create_instance_from_json if is_json_request else
                   create_instance_from_xml)(username, request)
```

I prefer the bottom 2 because there is less repetition, `repetition==bad`, or maybe you can think of something even cleaner.

@denniswambua  your call