Add support for various archive formats.

Used mime-types gem instead of hardcoding content types.
Allow multiple extensions in archive route (.tar.gz, .tar.bz2).
Change content disposition from infile(?) to attachment for api.
Fixed api would return “archive” instead of {project}-{hash}.{ext}

In order for this to work, https://github.com/gitlabhq/gitlab_git/pull/20 needs to be merged first.

This completes the non-gui portion of the work for http://feedback.gitlab.com/forums/176466-general/suggestions/4498612-zip-download-format-for-tags. I was going to open another pull request later for adding the button to download the zip. I wanted to add the ability to download from the "Files" tab, so you can get a bundle at a particular commit (similar to GitHub).