Elimination of the now-empty Invalidate function

This function was once necessary to trigger an object pool flush, but as the object pool concept was removed, there is no longer any need for Invalidate.
Eliminating deprecated ThreadStatusBlock type

This class is not referenced anywhere and its purpose is largely superceded by the CreationRules stack monitoring type.
Deprecation of the Event Stream system

This system is being deprecated as it is ill-maintained, disused, and very out of date.  The concepts represented here must be reimplemented to support AutoPacket, and will almost certainly require the support of a serialization strategy such as Protobuf or CaptProto.

Until the concept can be revisited, this code should be eliminated in order to facilitate header load reduction.
Packet factory is no longer recursive

This is a breaking change, and comes with a bump to the version number.  The bottom line is that AutoFilters are no longer recursive with respect to contexts.  This change was necessary because, unlike events, AutoFilters operating under recursion can violate the confinement principle by attaching decorations.  This could cause a situation where two subcontexts interfere indirectly with each other due to attached decorations.

Rather than trying to provide a backwards-compatible path for this feature, the feature has instead been completely deprecated.  This feature's theory of operation will require closer examination and justification at a later time.
Should be forwarding, not moving, where the input is templated
Eliminating unused and obsolete routine

This was formerly used when the std::exception_ptr datatype was in more common use; now, the current exception is characterized implicitly with `throw;` inside a try-catch block.
Add a "Has" function to allow quick queries for the existence of a type

This is the current way to determine whether the current context contains some type:
    Autowired<T>().IsAutowired();

This way is now supported:
    AutoCurrentContext()->Has<T>();
Merge pull request #289 from leapmotion/dep-invalidate

Elimination of the now-empty Invalidate function
Merge pull request #290 from leapmotion/dep-eventstream

Deprecation of the Event Stream system
Merge pull request #291 from leapmotion/dep-tstatusblock

Eliminating deprecated ThreadStatusBlock type
Merge branch 'develop' into dep-subreceipt

Conflicts:
	src/autowiring/AutoPacketFactory.cpp
Fix merge error.
Merge pull request #292 from leapmotion/dep-subreceipt

Packet factory is no longer recursive
Merge pull request #293 from leapmotion/ref-fwdtemplate

Should be forwarding, not moving, where the input is templated
Merge branch 'develop' into dep-dpcei

Conflicts:
	autowiring/CoreContext.h
Merge pull request #294 from leapmotion/dep-dpcei

Eliminating unused and obsolete routine
Merge pull request #295 from leapmotion/ref-nofastptrcast

Autowirable slot no longer requires a fast pointer cast entry
Merge pull request #296 from leapmotion/feature-has

Add a "Has" function to allow quick queries for the existence of a type
Implementing a pointer cast registry mechanism

This mechanism allows users to autowire types that are completely undefined.  Generally speaking, any function whose behavior might depend on whether the Autowired instance has been autowired or not will require that the type be completely defined.  This includes obvious functions, such as `Autowired::operator->`, but also less obvious functions such as `Autowired::NotifyWhenAutowired` and `Autowired::operator bool`.

As a trapdoor, the function `Autowired::get_unsafe` has been added.  This function does not require that the autowired type be registered, but inconsistent behavior will result if it's not, especially when dealing with class interfaces.