Adding unit test to demonstrate the behavior of AutoInit
Fixing a CoreContext::Initiate reentrant deadlock

CoreRunnable::Start can potentially deadlock if it tries to start a subcontext; this behavior should be supported as there are cases where a subcontext should be initiated in response to parent initiation.
Merge pull request #80 from leapmotion/bug-reentrantinitiate

Fix CoreContext::Initiate reentrant deadlock
Implementing AutoInit
Adding a test to validate that AutoInit can throw exceptions
Merge branch 'develop' into feature-autoinit
AutoInit probably belongs in PostConstructTest
Merge pull request #82 from leapmotion/feature-autoinit

AutoInit post-construction callback
AutoConstruct should not inherit AutoRequired
Adding an AutoRestarter

This is a utility type which can hold a single context and restart it when it throws an exception.  It also provides users with a standardized way of configuring the behavior of the restarter on construction.

Restarter does have a singleton implication that the subcontext is actually a singleton with respect to the current context.
Merge pull request #81 from leapmotion/feature-autorestart

Add an AutoRestarter
Merge pull request #83 from leapmotion/ref-autoconstruct

AutoConstruct should not inherit AutoRequired