Neutron Refactoring

v2_0 -> v2
No options (redesign)
More features (extension-related)
Some bugfixes
When deserializing, as there is no default constructor, we need to give gson some hints about which values have to be passed to each constructor argument. This is done with the `@ConstructorProperties` annotation.
What I tried to say is that, even if the AddressPair class is not being used in deserialization (because it is an entity that might not be returned by the provider API), I'd rather add the annotation to the constructor, to complete the deserialization "configuration". Having the fields annotated is not enough if there is no default constructor.