Initial attempt at AsyncOutcome refactor.
Get the changes for AsyncOutcome compiles and passes all tests.
Initial version of AsyncFunSpec, still needs blocking in Engine's runTestImpl for the moment.
First version of async tests working.
Eliminates race conditions in Status and AsyncOutcome.
Make AsyncFunSpecRegistration to extends AsyncTests and not AsyncFunSpecLike, add an overridable transformFun function in FunSpecRegistration to transform the function to Outcome, and finally provides a override in AsyncFunSpecRegistration to transform Future[Unit] to AsyncOutcome.  All async tests, succeeded, failed, pending, canceled and ignored tests working.
Make AsyncFunSpecRegistration to extend AsyncFixtures, make AsyncFunSpecLike to extend back AsyncTests and override transformFun in AsyncFunSpecLike there.
Added a test that prove that AsyncFunSpecRegistration can be used to support custom test result type.
Make engine field in FunSpecRegistration to fix the weird ClassFormatError when custom sub-trait of FunSpecRegistration is used.
Make AsyncTests to support tests that returns non-Future result.
Moved Async classes from org.scalatest.concurrent package to org.scalatest package.
Moved transformFun method to TestRegistration trait, and renamed it to transformToOutcome and do away with Transformer in its default implementation.
Added scaladoc to transformToOutcome method in TestRegistration.scala.
Added import scala.language.implicitConversions to org.scalatest.AsyncTests.
Work in progress async tests support in fixture package.
Now fixture async tests working with tests that do not return Future.
Async tests in fixture now working with custom test result types.
Removed unnecessary implicit ExecutionContext parameter in toFutureOutcome method of AsyncOutcome.
Removed defaultExecutionContext from AsyncFixtures, make an abstract def executionContext in AsyncFunSpecLike, and removed AsyncFunSpecRegistration which is not required anymore.
Make abstract def executionContext in AsyncFunSpecLike implicit.