tagify: compare against Node.TEXT_NODE for Safari

Compatibility issues, Safari does not have TEXT_NODE constant on
Element, but rather, Node.
Merge pull request #24 from behance/tagify-safari

tagify: compare against Node.TEXT_NODE for Safari
tagify: adding a limit

Limit will prevent more tags from being made. Will not stop people from
typing.
Merge pull request #25 from behance/tagify-limit

tagify: adding a limit
form: Events for pre/post submission transactions
Merge pull request #26 from behance/feature-form-events

form: Events for pre/post submission transactions
tagify: removing inline css

It used to try to maintain a minimum size based on the element it was
replacing. However this should probably be done through the CSS classes
it inherits instead.
Merge pull request #27 from behance/tagify-nocss

tagify: removing inline css

Approved by Dave
form: refactoring the event bindings

Event bindings for success and error now attach regardless of
innerChain.
Merge pull request #28 from behance/form-refactor

form: refactoring the event bindings
showMessages: Added logic for optional fade
Merge pull request #29 from behance/feature-fade-messages

showMessages: Added logic for optional fade
Tooltip: don't try to position relative to hidden elements
Tagify: adding ability to deserialize the field

Tagifying a field will now be able to read its value, deserialize it,
then run it through the templater to get to the initial state.
Merge pull request #30 from behance/tagify-load

Tagify: adding ability to deserialize the field
tagify: working around contenteditable cursor

In order to correctly position the cursor in a contenteditable element,
the browsers display the cursor only when there is an element to
properly flow inside the contenteditable.

For Firefox, this is a <br type="_moz">. This <br> sticks to the end of
the contenteditable and does not disappear. For webkits, this is
likewise a <br>, but as you start typing, the <br> will become replaced
with the TextNode containing your text content. We then rely on input
event to check to see if we need to manually inject a <br>.

Finally upon creation of a tag, we focus on the <br> so as to position
the cursor correctly.
Merge pull request #31 from behance/tagify-cursor

tagify: working around contenteditable cursor
tagify: to support focusing with pseudo placeholders

Placeholder elements by use of absolutely positioned pseudo elements
need a special thing. Since absolutely positioned pseudos generate their
own box yet do not have a `focus` event, we need to force focus the
element on click. Pseudos fire `click` and it bubbles, fortunately.
Merge pull request #32 from behance/tagify-focus

tagify: to support focusing with pseudo placeholders
Social: fix bug preventing multiple clicks on pinterest share