Fix for issue where empty tags are left appended to output.

Change ensures that immediate break from parsing occurs when
the character or word limit is hit.
Includes test.
Removed windows line endings (^M).

These line endings cause git diff noise when they get removed, which
can happen by mistake when saving from an editor like Sublime.
This patch gets rid of them explicitly.
Implementation of 'contextual' tags which are not clipped.

In some situations, clipping content by word or character is
not desirable and rounding to the nearest element is nicer.
For example when downsizing a blog post it could be good to
round to the current <p> element's end.

This commit exposes an API to allow for this, adding a
'contextualTags' key that take an array of element names.

Passing the following is good for content that was converted
from markdown:
    contextualTags: ["p", "ul", "ol", "pre", "blockquote"]
Merged @zerthraeus' master branch, refactored to retain early-return style. Passes existing tests,
Bumped npm version. Incorporates commits that fix #8