Allow functions to be passed to executeAsync

Fixes #92.
Use Suite#hasParent instead of Suite#parent

This is needed inside ClientSuite since Suite#parent is not
serialized when using the proxy so tests are incorrectly doubled
up inside the ClientSuite suite.

Fixes #86.
Run all parent suite beforeEach/afterEach when running a test

Fixes #67
Update Travis configuration for PRs

This increases the risk that someone totally breaks Intern and makes
bad tests pass, but decreases the risk that someone provides a PR
and the Travis run does not show the correct changes once the code
is actually committed, which is a more common problem right now.
Use the correct relative path

Follow-up to previous dumb commit.
Use the fulfilled value from a chained promise

dojo/Deferred#resolve does not unwrap promises so we need to resolve
using the fulfilled value rather than the promise itself.

Fixes #93.
Add instrumentation to client.js when running in Node.js

Fixes #5.
Use the native error object if it exists

This improves error reporting in modern browsers.
See http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html
Pass absolute paths to instrumenter

Fixes #95.
Add detailed reporting to runner.js

Fixes #96.