Significant cleanup and improvements to tabs and browser_action

Changed browser_action and tabs events to use Streams.

Added code to browser_action and tabs test to cleanup the state of the browser (at least when tests pass).

Added several more unit tests for browser_action and tabs.