Added form annotation builder factory

Two outstanding items for this pull request:

1. What is the best method to get it into the default service locator config?
2. Should the factory support adding custom annotations and annotation listeners to the builder?
Currently the parser implementation details are internal to the class, before this enhancement the parser was created inside setAnnotationManager and populated by this class with some default annotations - hiding this complexity from client code. 

Whilst I agree that this does seem to be a SRP violation, resolving the violation would be a significant BC break.