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 - did you test out the demo?  What you described is not possible because the tagging feature checks for case agnostic matches.  If a match is found, then the `(new)` item doesn't appear only the one that's already in `.items`.  See this screenshot: http://cl.ly/image/2D3E1S2v3D0D