fix(urls): saner urls for plugin resources

We currently do something along the lines of:

`/plugins/{subpage}/{inputs}`

This makes sense when you're limited to a giant switch statement, but isn't very intuitive when you think about the structure of the content.

I think this approach is much more intuitive for urls:

`/plugins/{plugin}/{subpage}`

Edit: In the spirit of feature creep, here are all the urls we currently support:

```
/plugins
/plugins/admin/{guid}
/plugins/all
/plugins/category/{category}
/plugins/contributors/{guid}
/plugins/developer/{username}
/plugins/developer/{username}/type/{type}
/plugins/download/{release_guid}
/plugins/edit/project/{project_guid}
/plugins/edit/release/{release_guid}
/plugins/icon/{guid}
/plugins/new/project/{username}
/plugins/new/release/{project_guid}
/plugins/project/{guid}
/plugins/release/{guid}
/plugins/search
/plugins/transfer/{guid}
/plugins/{guid}/{release}
/plugins/{username}/read/{guid}/{title}
/plugins_image/{guid}/{timestamp}.jpg
```

I'd like to switch to:

```
/plugins
/plugins/new
/plugins/search?owner={user}&category={user}&type={type}&...
/plugins/{plugin}
/plugins/{plugin}/admin
/plugins/{plugin}/contributors
/plugins/{plugin}/edit
/plugins/{plugin}/icon
/plugins/{plugin}/releases
/plugins/{plugin}/releases/new
/plugins/{plugin}/releases/{release}
/plugins/{plugin}/releases/{release}.zip
/plugins/{plugin}/releases/{release}.tgz
/plugins/{plugin}/releases/{release}/edit
/plugins/{plugin}/screenshots
/plugins/{plugin}/screenshots/{screenshot}.jpg
/plugins/{plugin}/transfer
```

That will make them all much more consistent.

TODO:
- [x] Add support for all new URLs
- [x] Redirect legacy URLs
- [x] Fix screenshot rendering
- [x] `/plugins/search?category=themes` doesn't work as intended
- [x] `/plugins/search?owner=iionly` doesn't work as intended