Projects (first PR)

This PR introduces:
* The `Project` `ProjectItem` `SavedSearch` models
* The `PolymorphicGroup` module
* The `ProjectsController` controller, showing and creating `Project` instances from `Country`, `Region` and `ProtectedArea` instances
* The `SearchController#create` action, creating `SavedSearch` instances, linked to `Project` instances
You should pass in the difference you want to assert, rather than just "something changed". E.g. `assert_different('Project.count', 1)`