Prevent external deletes of heap-allocated objects

The WebView, WebFrame, and HttpTransaction objects are allocated from blpwtk2's
heap, and should not be deleted in a different heap.
Implement GetNavigationErrorStrings

This method is called whenever a navigation error occurs, and allows us to
display the error to the user.  For now, we just generate a generic error
message containing the error parameters.
Create in-process renderer only when it is used

Previously, when running in RENDERER_MAIN mode, the in-process renderer would
be created as soon as the BrowserThread is created.  With this change, the
in-process renderer is only created when a WebView using it is created the
first time.

Also cleanup BrowserThread to make the initial wait an implementation detail.
Add profiles and proxy configuration

Toolkit now exposes 'getProfile()' and 'createIncognitoProfile()', and
CreateParams now has a 'profile()' property.  This allows applications to
create WebViews with different cache/proxy settings.  Note that right now, any
two WebViews using the same renderer process must have the same profile.

Note that we now create a BrowserContext for each Profile, instead of creating
a single BrowserContext in BrowserMainRunner.
Verify that all WebViews have been destroyed

It has always been undefined behavior to call Toolkit::shutdown() while there
are WebViews that have not yet been destroyed.  This change adds a counter for
the number of outstanding WebViews, so that we can actually verify this.
add moveView() to blpwtk2::WebViewDelegate
Add custom tooltip support

Add ability for clients of blpwtk2 to provide their own custom tooltips.
Clients can enable this functionality through
blpwtk2::WebView::enableCustomTooltip(true). Once enabled, they should
implement blpwtk2::WebViewDelegate::showTooltip(...) to show their
custom tooltip.
Use TextDirection in ContextMenuItem

Summary:
Instead of using a boolean rtl flag, use the TextDirection enum for
defining context menu item direction.

Test Plan: -

Differential Revision: https://uiinf.phab.dev.bloomberg.com/D1689