added default arguments for optional

optional field should have default values.
Example
@Optional(defaultString = "NONE") @InjectExtra(ARG_TYPE) String type;

Else one starts with null checks and keep writing boilerplate code 
I had to create defaultString, defaultBool and so on as annotations does not allow a generic "Object".
I did not add a default for Parcables as defaults make more sense for primitives and especially strings
The "required" boolean moved now into this new class called DefaultValue. Added tests for the new types