Throw exception if waiting on ObjectPool when rundown is called

A deadlock happened if rundown was called while a different thread was waiting for an object from the ObjectPool
Add test to verify ObjectPool rundown deadlock
Fix typo.
Make RundownWhileWaiting test more robust
Merge pull request #216 from leapmotion/fix-objectpool

Fix potential ObjectPool deadlock
Minor comment updates
Merge pull request #217 from leapmotion/fix-comments

Minor comment updates
Fixing Windows build warning
Fixing issues with types that inherit their AutoFilter implementation

Adding a unit test to demonstrate this problem, and a corresponding fix which involves modification of the TypeUnifierComplexAutoFilter to include the original type.

The root of the problem is that decltype(&T::Foo) might actually evaluate to a member function type incompatible with T.  This occurs when Foo is declared in a base of T, rather than in T itself, and the result is that TypeUnifierComplexAutoFilter will actually create concrete types that completely bypass T.
Merge pull request #218 from leapmotion/fix-msvc-warning

Fix Windows build warning
Fix unit test which uses an invalid unowned lock release

This pattern might work on certain systems, but it's actually not correct to release a lock from anywhere except the thread which originally obtained that lock.  For synchronization in this fashion, a barrier or a conditional variable is preferred--a conditional variable is used here for portability.  Unfortunately, in this case, a total guarantee that the async is waiting is not possible--a short thread sleep is used instead to provide a one-sided error guarantee in this test.
Merge pull request #219 from leapmotion/fix-rundowntest

Fix unit test which uses an invalid unowned lock release
Fix two small documentation errors, and make the style more uniform.
Adding r-value override to AnySharedPointer
Merge pull request #221 from leapmotion/bug-objectpool-comments

Fix two small documentation errors, and make the style more uniform.
Merge pull request #222 from leapmotion/ref-anyshrptr-rvalue

Add r-value override to AnySharedPointer
Merge pull request #223 from leapmotion/fix-inherited-autofilter

Fix issues with types that inherit their AutoFilter implementation
Correcting timing-sensitive unit test

Questionable how this test could ever have been as reliable as it was.  It's made a bit more robust now.
Merge pull request #224 from leapmotion/bug-sensitivetest

Correct timing-sensitive unit test
Correcting some missing constructor initializers