Use custom encoding of blob content

Open username-removed-823271 requested to merge kolesar/gitlab-ce:encoding into master

What does this MR do?

Adds support to custom encodings (other than utf-8) specified in attributes file.

Are there points in the code the reviewer needs to double check?

Requires https://gitlab.com/gitlab-org/gitlab_git/merge_requests/133

Why was this MR needed?

To display raw contents of a file that has different encoding.

What are the relevant issue numbers?

#18151 (moved)