implement withFrame, withPopup, and waitForPopup

Thanks to @asciidisco for the original idea to get this done

close #30
Teach tests to throw if spooky emits an error

On an `error` event, throw unless `context.spooky.swallowErrors` is truthy.

close #47
Serialize function values in casper options

Serialize function and function tuple values in `options.casper` recursively.

NOTE: `bootstrap/casper` only deserializes functions starting with 'on' and
those that are children of `httpStatusHandlers`.

close #52
Fix nested function test; add nested fn tuple test