=add polymorphic_pointer_downcast function template
add more tests and documentation example for polymorphic_pointer_downcast
Merge pull request #6 from Boris-Rasin/polymorphic_pointer_downcast

Add polymorphic_pointer_downcast function template (pull request #2)

Looks really good.
I'll move your implementation into a separate polymorphic_pointer_cast.hpp header to avoid Typeof dependencies for users that do not use `polymorphic_pointer_downcast`