Embedly - catch server/network errors and wrap them in our InvalidResponseError class
Tests - refactor and a few new tests
Embed Model - rework the way `response` is handled.

- can now set an invalid response, which makes a ton more sense. Nothing will save and the other attributes won't set anyway.
- ignore attempts to set the same response.
- get_response()
- update_response() can handle None
Simplify the `url` and `backend ` fields. All they do now is clear the response if changed. It's the Model's job to know if a Backend should be assigned not the individual fields.

Main change - the Backend is auto-assigned on save() now not when the field changes. This in itself is simpler. We also have a `choose_backend()` that can be used at others times.
Minor change - `backend` can be blank. This will help in the form/Admin use.