Here is almost finished version

Here is almost finished version of a library.

You can create ```TypifiedPageFactory``` (or ```PageFactory```) descendant class if needed to support even more element types. Don't forget to override ```PageFactory::initFactory``` method to use correct factory class inside you elements.

To test I actually made descendant classes of ```Page``` and ```HtmlElement``` classes with my framework (In-Portal CMS) related code.

If you need new annotation support on your elements, then this can be easily done with 3 steps:
1. create annotation class (see ```FindByAnnotation```)
2. register class in ```AnnotationManager``` right in your custom factory
3. get annotation of a class via ```Annotations::ofProperty($reflection_property, null, '@new-annotation-name');```