Bug 1109676 - Implement tabbed browsing

Just to get something in the tree, here's a v1 implementation of tabs. This includes a TabManager, along with a basic view controller that operates on TabManager to add/remove/select tabs.

This doesn't address dispatching tab events to multiple listeners; currently, it just uses a single delegate implemented by BVC. Once this lands, I'll experiment with different communication patterns (KVO and NotificationCenter, at minimum).