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
prevent share-view being clipped at viewport bounds
Adding post details in preparation for the API importer code.
Upgraded and refactored Sanitizing. Much less crap should get through now!

Conflicts:
	app/assets/javascripts/discourse/components/syntax_highlighting.js
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