Tagging support (continues #260)

@dimirc I've rebased the latest from @tvervest and @juanpasolano from #260.  I've also added auto-tokenization support at your request.  Note that javascript ignores trailing / leading whitespace characters inside data attributes so users will need to use the constant / literal `SPACE` if they want tagging with that character.  You can pass in pipes (so the only invalid character for tagging is `|`) to get multiple tag characters.  This can be seen in the tagging demo I've created in [my fork here](https://github.com/brianfeister/ui-select/blob/tagging-support/examples/demo-tagging.html).

The one outstanding to-do is the `{tagname} (Create New)` UI indicator.  It should be easy but I have to leave for the day right now so figured I would share my progress and maybe someone else can commit that, if not, I'll get it soon.
Could be better if we check the result of the tagging factory and if its false we could prevent/revert the creation of the item