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.
Top Posts: add link to post thumbnail
Top Posts: add title, class, and data-bump-view attribute
'shallow clone' the WordPress develop repo

There is no need to checkout the entire history of the WordPress develop Git repo.

Using `--depth=50` reduces the checkout time by ~75%

http://git-scm.com/docs/git-clone
> --depth <depth> Create a shallow clone with a history truncated to the specified number of revisions.

Time WordPress Git develop repo 'shallow clone' vs 'full clone'
https://gist.github.com/ntwb/36ad2a31cb87e7411c28

This resulted in 'my' build on Travis CI taking 22 seconds vs the previous Jetpack build taking 1min33secs
https://travis-ci.org/ntwb/jetpack/builds
https://travis-ci.org/Automattic/jetpack/builds
Shallow Clone One
Image Widget: add a new option to open links in separate tab
Contact Form: do not display the logged in user's details

Can be overwritten with the jetpack_auto_fill_logged_in_user filter
Fixes #694l
Related Posts: Pass formatted date of post to front end.
Related Posts: Output post's date before context.
Related Posts: Style date on front end like context.
Contact Form: fix spacing

See https://github.com/Automattic/jetpack/pull/725#commitcomment-6888035
Tiled Gallery: Fix image meta encoding.

Image meta is now encoded by calling `esc_attr` on the result of mapping strval over the image meta attributes, instead of mapping `esc_attr`. This way `json_encode` can properly escape any quotes inside the attribute, before being attr encoded.
Add support for Co-Authors Plus

Adds authors generated by the Co-Authors Plus plugin (supported by WordPress.com VIP) to the heading and fixes a missing "%s" in the heading for regular author pages without the plugin
Add support for Co-Authors Plus

Adds support to the byline for authors generated by the Co-Authors Plus plugin (supported by WordPress.com VIP) and simplifies the regular author link that is displayed when you don't have the plugin installed
Add Filter By Role in Widget Visibility
Make author heading code more readable