replace TestMain with a sync.Once to start browserCtx
replace TestMain with a sync.Once to start browserCtx

This has two main advantages. First, if we don't run any test that calls
testAllocate, we don't have to start the browser, meaning that 'go test'
does less work and runs faster.

Second, the tests that don't require browserCtx don't have to wait for
TestMain to allocate the browser, as they can now start right away. This
makes a regular 'go test' run slighty faster, as it can start running
tests sooner.

chromedp/chromedp,knq/chromedp,chromedp/chromedp,knq/chromedp,knq/chromedp,chromedp/chromedp