Allow XHR requests to pass in data

XHR requests can now state which custom metrics and timers they
care about, and also specify if a different URL should be used
to parse for custom metrics.
An XHR request can be a subresource of the current page

A subresource of the current page is marked as such so that server side
analytics tools do not count a separate page view, and uses the timing
metrics of the parent page.

The logic for tying a subresource to the parent page is server dependent
and not included in boomerang.
Add time when boomerang showed up on page to beacon
add null check before dereferencing
Put boomerang errors onto the beacon as well
Firefox 31b5 introduced a bug where accessing window.performance in an anonymous iframe
throws an error.  This changeset catches that error so that we don't stop processing.
make variable names more readable
Wrap event handler calls and init() calls in a try/catch

We need to make sure that a failure in one plugin does not block other
plugins from executing.  This change wraps each plugin call in a try/catch
so that we catch any errors and log them, and then proceed with other plugins.
Do not log the same error multiple times, and clear errors after beaconing
Merge branch 'master' of github.com:bluesmoon/boomerang