Scenarios [work in progress]

- [x] Add the concept of Scenarios (Agent Groups)
- [x] Allow Scenarios to be exported as JSON dumps
- [x] Allow Scenarios to be imported
- [x] Repeated import of the same Scenario should offer to update the existing one
- [ ] Show visual diff when the existing Scenario has been edited
It is compact and efficient but a bit hard to read. Because `current_user.scenarios.find(params[:scenario_id])` would raise an exception when the scenario is not present anyways how about
```
@agents = if params[:scenario_id].present?
  current_user.scenarios.find(params[:scenario_id]).agents.includes(:receivers)
else
  current_user.agents.includes(:receivers)
end
```
or 
```
@agents = if params[:scenario_id].present?
  current_user.scenarios.find(params[:scenario_id])
else
  current_user
end.agents.includes(:receivers)
```