Added preserve_defined_order flag to annotation builder

This flag when set preserve the elements in the order they are defined in the class as opposed to the default of putting fieldsets after elements.

Fixes https://github.com/zendframework/zf2/issues/6653
 > without this API method it complicates logic to set options inside the factory.

Don't worry about factory complexity: factories are not reusable code, while this is. Code for maximum simplicity here, and move instantiation complexity to factories instead.