[zen-60] Specify doctrine/common dependency

- Added doctrine/common dependency to composer.json
- Updated travis configuration to ensure dependencies from composer are
  installed before running tests (suggested by ocramius)
- Modified test autoloader to use composer + StandardAutoloader
[zen-60] Added DoctrineAnnotationParser

- Listener that receives an event with:
  - class
  - content
  - raw
- If class is registered with this parser, passes the raw string to the
  Doctrine\Common DocParser in order to retrieve an annotation object
[zen-60] Refactored AnnotationManager, Scanner

- AnnotationManager now:
  - Composes an EventManager
  - createAnnotation() triggers the createAnnotation event, passing an
    event with "class", "content", and "raw" parameters representing the
    annotation requested. First listener to return an object halts the
    event, and that object is returned.
- AnnotationScanner adds a third element to the $annotation array
  representing the "raw" annotation. This array is then passed to
  createAnnotation(), and if a non-false value is returned, appended to
  the collection.
- Added GenericAnnotationParser, which operates in the style originally
  posited by Ralph.
[zen-60] Refactor to provide better usability

- Created ParserInterface
  - defines onCreateAnnotation(), registerAnnotation(), and
    registerAnnotations()
  - refactored GenericAnnotationParser and DoctrineAnnotationParser to
    follow above interface; removed constructor from
    GenericAnnotationParser, and made registerAnnotation accept string
    class names.
- Added attach() method to AnnotationManager; allows attaching a parser
  instance to the createAnnotation event.
[zen-60] Testing for annotation refactoring

- Added tests for GenericAnnotationParser and DoctrineAnnotationParser
- Modified AnnotationManager tests to test a mixed annotation situation
- Discovered an issue with DoctrineAnnotationParser; needed to provide a
  loader to AnnotationRegistry that attempts to autoload an annotation
  class in order for the functionality to work with namespaced
  annotation classes.
[zen-60] Refactored Form\Annotation to use Doctrine annotation syntax

- Modified setAnnotationManager() to create a DoctrineAnnotationParser
  instance and seed it with the ZF form annotation classes
- Removed AbstractAnnotation
- Created AbstractStringAnnotation and AbstractArrayAnnotation to handle
  basic validation of annotation values
- Refactored all annotation classes to use constructor-based
  initialization
- Fixed tests to demonstrate Doctrine-style annotation syntax
[zen-60] Refactored IntrospectionStrategy to follow changes in Annotations

- Modified createDefaultAnnotationManager()
  - creates a GenericAnnotationParser instance, and seeds it with the
    Inject annotation
  - attaches the GenericAnnotationParser to the created
    AnnotationManager
[zen-60] Fixed tests for Zend\Code

- AnnotationScanner test was refactored to follow new
  AnnotationManger+Parser API
- PropertyReflection test was refactored to follow new
  AnnotationManger+Parser API
[zen-60] remove dependency on composer autoloader

- If composer autoloader is missing, simply use the standard autoloader
[zen-60] Import form exception namespace

- Abstract annotation implementations needed to import the Zend\Form\Exception
  namespace in order for exception classes to resolve
[zen-60] Make doctrine/common an optional dependency

- Marked doctrine/common via require-dev and suggests in composer.json
- Updated travis config to pass --dev flag to composer
- Added test constant flags to test configuration to skip annotation
  tests unless flag is true
[zen-60][#1681] CS changes/fixes

- Made CS changes suggested by Maks3w
Merge remote-tracking branch 'weierophinney/feature/doctrine-annotations'