provide ability to use custom annotations in page objects

There are two major changes in this PR:
 * split Annotations into abstract class and default implementation
 * extend DefaultElementLocator and AjaxElementLocator constructors to work with provided annotations