Major overhaul of events and code style

Rename some events, add 2 new events:
`tokenfield:preparetoken` => `tokenfield:createtoken`
`tokenfield:createtoken`   => `tokenfield:createdtoken`
New: `tokenfield:editedtoken` and `tokenfield:removedtoken`

Allow preventing default in `removetoken` event - prevents token
from being removed.

Rename `event.token` to `event.attrs` to clear up confusion.

Use `$` on all variables that are jQuery objects to clear up more confusion.