Make Reply-To config apply to change e-mail confirmation and other notifications sent through Devise
Notifications sent through Devise were using the default From: address, and due to a broken test line nothing was actually being run.
The only way to customize the Devise Reply-To field is to use a custom mailer. Moved the e-mail configuration out of the initializers to accommodate this.
Closes#1556
See merge request !596
Add a page title to every page.

The `page_title` helper pushes the provided string at the end of the title, but because of the order that layouts are rendered in by ActionView, the result is always this:
```
<title from view> |
<title from as specified in the controller or by its layout> |
<title from layouts/_head>
```
For example: `Merge Requests | GitLab.org / Gitlab Community Edition | GitLab`.
All a developer needs to know is to put a `page_title` call describing the page in question at the start of every template.
To get everything where I wanted it to go without too much duplication, I had to make some changes around layouts, sidebars and controllers.
See merge request !593
More HTML::Pipeline filters
The big part of this MR is a feature that is intended to test the entire Markdown-parsing process from beginning to end. See `spec/support/markdown_feature.rb` and `spec/features/markdown_spec.rb`.
One big thing this MR fixes is not being able to type a `<` or `>` anywhere. It now gets properly escaped.
This MR also adds three more custom HTML::Pipeline filters:
### AutolinkFilter
Similar to the built-in Autolink filter in that it still uses Rinku for standard http and ftp links, but then does some further processing to allow auto-linking of any URI scheme. See internal issue https://dev.gitlab.org/gitlab/gitlabhq/issues/2239
### SanitizationFilter
Created a simple custom SanitizationFilter that sub-classes the default one and adds our custom whitelisting.
### TableOfContentsFilter
Adds the anchor links to each header. This removes some processing from our Redcarpet renderer.
Closes#800, #1015, #1528, #1549
Closes GitHub [8535](https://github.com/gitlabhq/gitlabhq/issues/8535)
See merge request !584
While `escape_once` will create this HTML entity, Nokogiri always
translates it back before it gets to IssueReferenceFilter, so there
should be no danger of erroneous issue links.
Fix DB error when trying to tag a repository
Steps to reproduce: Go to a project settings, add tags, click on save changes
Observed behavior: Error 500
```
PG::Error: ERROR: column "taggings_count" does not exist
LINE 1: UPDATE "tags" SET "taggings_count" = COALESCE("taggings_coun...
```
Ran `rake acts_as_taggable_on_engine:install:migrations`, removed the first
migration that created the `tags` and `taggings` table, and added the rest.
* Closes#1512
* Closes#1550
* Closes https://github.com/gitlabhq/gitlabhq/issues/6867
* Closes https://github.com/gitlabhq/gitlabhq/issues/9194
See merge request !577
Fix "Revspec not found" errors when viewing diffs in a forked project with submodules
## What does this MR do?
This MR fixes an error that occurs when viewing diffs in a forked project with submodules.
### Are there points in the code the reviewer needs to double check?
Testing this code was tricky. The only way this problem shows up is if the origin project does NOT have the submodule update commit. The introduction of gitlab-test-fork serves that purpose: it contains a submodule update not present in gitlab-test.
### Why was this MR needed?
A user would receive a 500 error when trying to view a merge request with a submodule update. #1413 has details on how to reproduce this issue.
### What are the relevant issue numbers / [Feature requests](http://feedback.gitlab.com/)?
#1413
See merge request !512