Refactor to support more options, generate some cleaner DOM elements, handle more dynamic pages, etc.

This is a pretty significant change, I understand if you don't want to merge it back. Changes are:

- Don't wrap elements, instead insert a display: block placeholder after the element that is hidden and shown appropriately.

- Allow for many more configuration options, eg: zIndexBase, zIndexManagement, boundary -> top, className, placeholderClassName, fn -> stuck, unstuck callback

- Don't grab original y offset of the element, since this could change with dynamic pages where elements are inserted and removed. Instead, look at the appropriate sibling (previous sibling bottom) or parent (parent's top) for the right location to compare to the scroll value.

- Remove the standalone version, bring that code into the main index.js

I'm open to any feedback. Again, I realize this is a big change and totally understand if this should just stay as a standalone fork.