Added finite state machine.

It got to the point where we decided we needed to add a finite
state machine. Very efficient, and reduced code by a notable amount.
So far, there are three different states: empty, single, and multi.
On top of that, we create a new bridge every time, to avoid
hijacking other calls that may be going on (sorry!).

* Added finite state machine
* Safe bridge