Refactor: Topic#invite_by_email

Extract Topic#email_already_existas_for? and Topic#grant_permission_to_user
Fix failing spec due to missing variable in extracted method
Refactor: Topic#invite_by_email

Extract Topic#email_already_existas_for? and Topic#grant_permission_to_user
Fix failing spec due to missing variable in extracted method
Merge branch 'refactor-topic-invite-by-email' of github.com:cored/discourse into refactor-topic-invite-by-email
adds unit tests for Discourse.View
FIX: Query params were going a bit haywire when going from topic to topic.
On mobile, show new user usernames in grey, and highlight system posts like the desktop site does.
FIX: edit category modal with no title, empty modals that can't be closed. Added a better way to hide a modal without really closing it.
FIX: don't load post.rb a second time in dev env
remove rack cache, it has been causing trouble
instead implement an aggressive anonymous cache that is stored in redis
this cache is sitting in the front of the middleware stack enabled only in production
TODO: expire it more intelligently when stuff is created
Refactored Topic#limit_topics_per_day to reduce code climate complexity

Extracted  1) #apply_per_day_rate_limit_for, method as generic
RateLimiter , 2) #limit_first_day_topics_per_day as a separate method,
3) Added User#added_a_day_ago?, 4) Fixed private methods indentation.
Support for MDTest
FIX: New line after blockquote
FIX: Heading with style
another speedup for the BackfillPostUploadReverseIndex migration
add a sitesetting to enable the CleanUpUploads job
When system flags users as sockpuppets, show a reason in the admin flags ui
unit tests for Discourse.ContainerView
removes unused return statement from Discourse.ContainerView.attachViewWithArgs
FIX: Nokogiri bugs in certain environments