add a tab counter to the tab button
do some fancy animation hiding the back button when editing the url
on startup, delete all non-whitelisted cookies, add tests for whitelister
add an ipc for communication between webviews and the main app

Inject a blob of Javascript into each loaded page which uses this
IPC to override console.log and friends to send debugging info to
NSLog.

Also override window.open() and latch onto each <a> with a
target="_blank" to support opening links in new tabs.  This was a
lot harder than it probably should have been because window.open()
needs to return a Window object that the caller can manipulate,
which has to be in sync with the corresponding new window (or new
UIWebView in our case).

To properly do this, a FakeWindow object is returned from
window.open() which has setters and getters that hook into the IPC
to send those calls over to the target UIWebView and back.  The same
is done with a FakeLocation class that becomes the FakeWindow's
location object.

To prevent a page from manipulating other tabs, make the caller
generate a random ID that is attributed to the new tab on the app
side and require it with each IPC call from Javascript.

All of this was necessary to properly work with i.reddit.com's
method of opening links in new windows, which is a convoluted
process of hooking into each <a class="may-blank"> click event to
add target="_blank", but then calls a two-step

    w = window.open("", "_blank"); w.location.href = "...";

instead of just

    window.open("...");