First implementations of 'MetaProperty'

:exclamation: *This pull request is incomplete*

## Functionality

It provides two implementations of `MetaProperty`:

* `FunctionalMetaProperty` which uses functional interfaces to access the value and annotations
* `FieldMetaProperty` which reflects on a field to access the value and annotations

These classes have a common superclass `AbstractMetaProperty` which does all the wiring and only leaves the actual value and annotation access to its subclasses.

All classes are only package visible. I plan to create a public `MetaPropertyBuilder` which allows the transparent instantiation of one of the implementations. It will also check arguments for validity (e.g. not null), which is currently not being done.

## Tests

The pull request contains tests for both classes. In order to make sure, that all implementations execute the exact same tests, there is an abstract superclass for tests. It only leaves the creation of instances to its subclasses.

I included JUnit and Mockito in the pom.