Added optional support for mapping annotation

In some cases the source or target field doesn't exists. The current implementation throws an exception in this case.
With the optional=true option before adding the annotation mapping validate that the field exists. If not the annotation is not mapped and the current exception will not occure.