Dont allow ? in project path

Because it causes 500 error on every page where link to such project
exists

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Check if blob or tree and redirect to the correct one.
Add tests for redirects.
Update highlight.js to 8.1

Also added support for less common languages. All languages from
http://highlightjs.org/download/ now supported

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Active link based on controller rather than action.
Show browse file if we are browsing file history.
Check if blob is requested.
Differentiate between dirs, files and general code.
Move the links decision to helper.
Add tests to check for correct browse link name.
More entries to CHANGELOG

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Add annotated tags.  Updating tag haml file and call to gitlab-shell.
Updating API for annotated tags.  Add tests for API.