Only use window.open on http links
Allow language subreddits in multireddits.
DomainSR: force domain to lowercase

Even though the site generally normalizes domains to lowercase in most
other places, visiting /domain/EXAMPLE.COM (or any other capitalization)
would not show any results, the only working address would be
/domain/example.com. This forces to lowercase, regardless of how the
domain was capitalized in the url visited.
Thing._byID: raise a useful error for non-int ID

Previously, passing a non-integer ID (usually happens with a string)
to _byID would give the "huge thing_id" error, which was confusing.
thing.py: Create shared _fast_cache_key function

This function is meant to allow all of our Relation code to use the same
key, making it easier to change. It also required a refactor of the
_fast_cache code a bit to operate on cache keys instead of tuples.
cache.py: Let TransitionalCache modify keys.
thing.py: Fix name input to be ascii string

_query returns an ascii string for name no matter what. This was causing
an inconsistency in the cache key. u'subscriber' vs 'subscriber'.
Relation: Start dual-writing new key names.

This is the first part of cleansing rel key names of spaces.
Relation: Cut reads over to the new key name.
thing.py: Sanitize fast cache key for Relations.

This makes the fast cache key safe for the memcache ASCII protocol.

NOTE: This will need to be rolled out in a safe manner (usually a downtime) in order to avoid any data integrity issues.
Relation: Stop dual writing keys.
markdown: Make headers inherit color.

If a subreddit wants to change the default text color (e.g. for a dark theme)
they'd need to override the color for the .md element and each header tag
(h1-h6) individually.  This makes it so the header tags inherit from the .md
element to make this less painful.
markdown: Remove default background color for tables.

Some subreddits use tables for special layout purposes, and the new default
background colors for rows often needs to be overridden.  Since the effect is
pretty subtle anyways, its probably better to just remove it altogether.
markdown: Fix font scaling for sidebar.

Commit 8f1ab15 addressed an issue we were seeing where some subreddit had
huge font sizes with the new markdown styles applied.  The solution was to
structure the styles such that <p> elements had a default font-size of 1em,
which worked well.  Unfortunately, because of the way that the sidebar styles
are structured (and because I kind of forgot about them in that solution),
this caused the opposite problem for some subreddits' sidebars: tiny text.
This applies the same solution to the sidebar text, and does a little bit
of refactoring along the way.

This replaces most references to absolute numbers with variable references.
A scale of font sizes, line heights, and margins used are defined at the top
of the file, and pretty much everything references those (except for small
stuff like borders.). I thought this was slightly easier to reason about than
doing `font-size: @base + 2;` kind of stuff, but it might be a little
overboard.
Use react.js version with bundled addons.

This does _not_ bump the version number of react, it just uses the version
with addons bundled in.  These are mostly utility features, but the main
reason is for the animations addon.  Trying to add CSS transitions to elements
entering or exiting the DOM _without_ this addon would be a major pain.
markdown: Fix broken padding and margins.

Switching to unitless variables for all font-size, line-height, padding and margin
styles requires assigning those variables a unit when using (e.g. @var * 1px).  I
failed to do this in a couple spots, causing the selftext box to lose its padding and
look totally weird.

Also raises the left padding on lists.  Numbers on ordered lists were falling outside
of the comment's container, and getting clipped off.  This also looked totally weird.
Work around IE Mobile's `window.open` nastiness
Try to deal with non-W3C compliant popup blockers
Fix ctrl-clicking to open a new tab in Firefox