Extract parts of ActorSystem into ActorSystemImpl, ExtendedActorSystem. Breaking Changes!

This means that ActorSystem now only exposes public things.
ExtendedActorSystem is what extensions sees, and ActorSystemImpl is used internally.
Implement TestKitBase and Xunit.TestKit Breaking changes

- Most of TestKitBase is implemented
- Added a TestKit for xUnit.
- Moved AkkaSpec out of TestKit, It's for internal testing and is not part of TestKit
- Implemented Duration and FiniteDuration. Like Scala's but must be positive (not sure what a negative duration is... )
- Other changes are due to breaking changes in TestKit (Making public members PascalCase, and renaming)