Redesign login
Disallow replies to proxy gilding accounts
Ratelimits: OAuth should take precedence.

The CDN exemption should not take precedence over OAuth since OAuth may
be coming through a CDN but will always be configured to bypass CDN
caching.

The non-API exemption moves down as well for consistency though it will
have no direct effect here as all OAuth requests should be API.
Ratelimits: add strict enforcement mode.

For some app pools that are selected based on the incoming request
source, such as whoalane, we may want to apply the ratelimit to ALL
kinds of requests to ensure that resources are being used fairly.  This
adds a strict enforcement mode which can be enabled in the config. Oauth
will continue to be enforced per-client ID but all other requests will
get the sitewide ratelimit.
click: Don't unquote destination url.

The url is already unquoted correctly and double unquoting can cause
problems with unicode characters.
Add proxying_for param for proxy gilding accounts

Allows proxy accounts to send the username of the user that the
gilding is being done on behalf of. This will still use a creddit
from the proxy account, but everything else related to the gilding will
be associated with the actual purchaser, to enable things like replying
to the gilding messages, update the gilder's trophy and /gilded page,
etc.
Compact: add rules page

Our site-wide rules page has been blank when using the compact website
(i.reddit.com).  Oops!
Compact: extend scss compilation docs

This is the only scss file we have, and we don't change it often, so it's not
really integrated into the asset-building pipeline.  In the future, if we don't
get rid of it entirely, we'll probably convert it to less, but in the mean
time, let's make it slightly easier to work with.

I reverse-engineered these instructions, so they might not be exactly what
we've used previously.

In particular, I'm probably using a different version of the gems, which would
explain why the additional import was needed.
Compact: style rulespage a bit

Port over some colors from the desktop site, add a bit of padding so things
aren't right on the borders of the screen, and remove the brick at the bottom
of the page, since it only makes sense with alt-text and mobile clients don't
tend to support hovering.
Fix compact login styling
Add email settings to config spec
Sample frontend performance stats to 1%.
Set GA sample rate through config

reddit uses Google Analytics[0] as a tool to track events on the reddit.com
website, which allows for gathering page load and user event data while
keeping users anonymized. However, with the high volume[1] of traffic
that reddit recieves, the data collection limit[2]-- even with a premium
account-- is often surpassed by a large volume.

Wikpedia states[3] "... sampling is concerned with the selection of a
subset of individuals from within a statistical population to estimate
characteristics of the whole population." We can, using this principle,
send a small portion of user events to Google Analytics collection
endpoints rather than sending the entire data set and achieve a
reasonable approximation of global user behavior without exceeding
reasonable data usage limits as defined by Google Analaytics.

In order to achieve this, the Google Analytics javascript library
provides a method to set a sampling rate[4], a percentage from 1-100.
By calling:

```
_gaq.push(['_setSampleRate', '80']);
```

One can set the sample rate to 80% of users. In reddit's case, I suggest
a default sampling rate of 50%. Here, I have added the `_setSampleRate`
properties to the `_gaq` object created within `utils.html`. It gets its
value from the config, which allows for easy value changes and avoids
using a 'magic value' set multiple places in the code.

[0] - https://www.reddit.com/help/privacypolicy#p_22
[1] - https://www.reddit.com/r/AskReddit/about/traffic
[2] - https://support.google.com/analytics/answer/1070983?hl=en
[3] - http://en.wikipedia.org/wiki/Sampling_(statistics)
[4] -
https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration#_gat.GA_Tracker_._setSampleRate
Send all RUM timings to hivemind instead of /web/timings

Use the new hivemind stats server to collect data rather than
/web/timings, so all the data collection goes to once place.
Move stats collection sample rate to config

This way, we can update the rate in one place.
Sidebar: always link to moderator info

[A user suggestion][0] from /u/Motha_Effin_Kitty_Yo.

Aside from the url hacking, the only previous way to get to this page was to
click the more link for subreddits with "too many" mods.  Since this
information is public, we might as well make it easily available no matter how
many mods there are.

[0]: https://www.reddit.com/r/ideasfortheadmins/comments/2mqmj2/provide_a_view_about_link_in_moderator_box_even/
Improve moderator info page title

Since this page is accessible to non-mods, it doesn't make much sense to title
it "edit moderators" - people who can't edit anything can see it.

Also, while I was messing around in here, I noticed the titles we put on these
pages are awfully generic.  I didn't want to touch too many things, so we're
only adding a subreddit suffix to this page.
graphite: Don't send counters for timers to tallier.

This extra data does tell us how many timer samples were averaged out
before being reported to tallier, but in general it causes us confusion
and takes up space in packets and we've never really needed it.
Swap contact tel for email.
Determine if a comment is gildable from can_save

Previously this was being done with can_reply, but that can make
archived comments, comments in subreddits the user is banned from, etc.
ungildable. Now that comment-saving is available to all users (and not
just ones with gold like it was at the time), can_save is a better
indicator to use.