Bring over clean paste logic from webapp

consolidate cleanup functions

Checks for google docs, inter-editor, and some random webpage sources for paste cleaning

use document fragment for the span cleanup (issue #html)

inline html pastes

cleanup
A check link option to append http:// to links

This isn't perfect.  It doesn't allow for mailto anchors or
ftp/file links.  However, I wanted to get it out there and get the
conversation started
Merge pull request #191 from yacomink/master

remove anchor preview listeners on deactivate, issue #190
Merge with origin master
Merge with scotterc link-formatting
Adds cleanPastedHTML option to the README
Formats README
Corrects method for unsetting an elements ID.

While `el.id = null` works fine in PhantomJS it does not yield the expected results when test run in Chrome. If you set do `el.id = null` the `id` of the element will be the string "null".
Adds very basic extension support for Medium Editor.

Allows the user to register extensions that add a button to the editor and can implement various functions. Also includes an example in the README on how to use this to create a simple text highlighter. Also adds a fix so the Editor fails gracefully when the user defines the "buttons" option as empty array.
Adds a bugfix to ensure the toolbar is not undefined before accessing it's properties.
Adds missing global declaration to activate.spec.js
Adds more undefined checks to all functions called via setTimeout.

There seems to be a lot more unexpected race conditions if you deactivate the editor from other event handlers.
By checking that properties are defined before accessing these errors should be fixed.
Merge pull request #196 from martinth/extension-api

Add basic extension API to Medium Editor
Merge pull request #198 from martinth/issue-197-toolbar-may-be-undefined

Adds a bugfix to ensure the toolbar is not undefined