Controller fires multiple active/inactive events

Controller now tracks it's active state (using this.isActive).
Can only transition from active > inactive (and vice versa) once.

Search start can now cause an active event to fire.

Fixes #59.
Fixes #60.