Ace ventura
## What does this MR do?
Makes Ace only load when it's actually necessary. The only two places it seems to be used is for Snippets and the File (Blob) Editor.
Before minification or compression, this takes the application.js down from 2.2MB to 1.6MB, and also removes two inline scripts :D
Compressed/Minified: master: 317KB/1.1MB, ace-ventura: 220KB/771KB
## Are there points in the code the reviewer needs to double check?
That this doesn't just completely break anything.
## Why was this MR needed?
Ace is a big library, this allows us to only load it when necessary.
## What are the relevant issue numbers?
#14372
## Does this MR meet the acceptance criteria?
- [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
- [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !4914
Fix Ace syntax highlighting with compiled assets
## What does this MR do?
Update ACE to 4.1.0 to allow modes (syntax highlighting files for particular languages) to be lazily loaded.
## Are there points in the code the reviewer needs to double check?
Don't think so.
## Why was this MR needed?
Syntax highlighting in the file editor only worked in development and test modes, not in production!
## What are the relevant issue numbers?
Closes#3225.
## Screenshots (if relevant)
First, the test setup - add these lines to `development.rb`:
```ruby
config.assets.debug = false
config.assets.compile = false
config.assets.digest = true
```
Then, before starting the server, run `bundle exec rake assets:clobber assets:precompile`.
Before:

There is an error in the console because `/assets/ace/mode-ruby.js` was not found (it's only available when assets are compiled on demand).
After:

This loads `/assets/ace/mode-ruby-3915f95a6cc47306b1305e4dcb7aca25b2ef9c49b18ec6011707135b6575d8f3.js`, which works because the precompile step included it and told ACE where to find it.
## Does this MR meet the acceptance criteria?
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~
- ~~API support added~~
- Tests
- ~~Added for this feature/bug~~
- [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !5501
Fix diff comments inverted toggle bug
## What does this MR do?
Explicitly set the comments visibility toggle based on the `active` css class.
## Are there points in the code the reviewer needs to double check?
Shouldn't be
## Why was this MR needed?
Fixes existing UI bug
## What are the relevant issue numbers?
Closes#20898
## Screenshots (if relevant)
Before:

After:

## Does this MR meet the acceptance criteria?
- [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
- Tests
- [x] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
See merge request !5818
Created tests and refactored some code along the way
Added stat graph util spec, refactored code
finsihed up tests and refactors
finsihed up tests and refactors