move validation of valid method into MethodOptionElement

- don't hold option element in descriptor
assert supported field type for option annotation;

- extract common methods of FieldOptionelement, MethodOptionElement to AbstractOptionelement
- validate that option name is valid
add copyright head => fix ci