Adds state API

Replaces the several state flags, mainly part of the drag feature, with
a state API. The state API be consists of the following methods:

 * `enter` - enters a state by name
 * `leave` - leaves a state by name
 * `is` - checks for a state by name
 * `register` - register tags for a state

The possiblity to use tags for states improves the decoupling of
plugins. The default tags are `busy` on system level and `interacting`
on user level.
Improves autoplay plugin

Simplifies the autoplay plugin by using the state API.

Closes #144 and #234
Allows resizing during video play