Swap invisible DOM nodes in and out based on scrolls.

This patch teaches the infinite scroll system how to pull DOM nodes out of
nodes outside the current viewport and stash them in a cache. It does this
by hooking into determineURL and walking all of the pages that were determined
to be hidden. It pulls all of the child nodes out of the page and stashes them
in a DocumentFragment. It also updates the min-height of the page wrapper to
match the old height when all the children were present.

When a user scrolls a page back into view, the children are reinserted into
the wrapper and the min-height and class marker are removed.

All that said, I'm not sure this had much impact on the overall memory usage of the
browser. Since we're stashing the actual DOM nodes, that memory can't be saved,
but we are likely saving some render memory, as the DOM should be substantially smaller
in most cases. Need to do some more testing with a bigger, more complex set of posts.
Remove errant console.timeEnd
Teach the IS replacement code to ignore media elements.

The previous commit would blindly yank all of the elements from a page
and stash them in a fragment. This could lead to playing video and audio
elements to stop when their page was no longer visible.
Shortcodes / Facebook: update regex to support valid Facebook content URLs
Change IS to cache HTML instead of nodes.

This patch teaches Infinite Scroll to cache the HTML
from the xhr response instead of caching actual DOM nodes
when yanking unseen pages from the DOM. This improves the
memory usage of the browser tremendously, especially in
pages that contain many memory intensive DOM nodes, like images.

Compared to the previous strategy of caching actual DOM nodes
in a set of DocumentFragments, this technique allows the GC to
collect the memory used to back large DOM nodes.
Mobile Theme: Remove promo for the Nokia app
Mobile Theme: Remove promo for Windows Phone
Mobile Theme: Missed a WinPhone ref
Remove /extend/ from w.org link
Featured Content: Add a user option to keep featured posts in main queries.

Replaces https://github.com/Automattic/jetpack/pull/82.
Stop ignoring media containing elements

Ignoring elements that may contain media sounded nice, but it limited the usefulness of replacing the elements. Audio elements especially tend to cause crashes in Chrome when many are in the page at once, and iframes carry a large memory weight. Tear 'em out.
Comment out reference to upcomingevents shortcode in module info
Remove reference to audio shortcode since we are no longer loading it
Add gist shortcode to module info
Move images to jetpackme.files. Fixes #1035
Change protocol to http to match previous
Support for `mapsengine.google.com/map` embeds
Support for percentages when transforming iframes to shortcodes
Cast as `(int)` just to be quadrupally sure
Gravatar Profile: use p instead of h4 for profile link

h4 can cause styling issues when a theme uses h4 for all sidebar widget titles