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.
@dimirc - need some help on this one, I'm looking through the code and not seeing a factory in use within the module right now.  The good news is that this block of code is already blocking the creation of duplicate items.  Some pseudo-code would be appreciated here for what it would look like to check the result of the tagging factory.