404 instead of 500 on inexistent paths for tree edit and blame show [failure unrelated]

Edit and blame on inexistent paths was giving 500 where it should be 404.

Live examples:

- https://gitlab.com/cirosantilli/test0/blame/master/README.mdqwer
- https://gitlab.com/cirosantilli/test0/edit/master/README.mdqwer

This was working for blob, tree and raw views.

Implementation: use the same mechanism currently used on the blob controller on all others by moving it to the parent `Projects::ApplicationController`.

The real cause of this however, is that the current controller design is bad IMHO: `blame`, `raw` and `edit` should be different actions of a single controller `blob` controller: this would make it easier to have uniformity.

The only reason they are not is probably because the `:id` can contain slashes which makes it harder to write DRY routes. See: http://stackoverflow.com/questions/26223317/how-to-put-a-member-of-a-routing-resource-outside-of-its-parent-namespace . But I'd rather have non DRY routes instead of non DRY controllers.