Implemented custom element name resolvers.

Clients can now specify a custom ElementNameResolver to be used by
the builder when resolving element names from method and parameter
names. This allows one to implement a single algorithm that maps
names to elements, so that it's not necessary to put the names in the
 annotation values themselves.
Bumped the next version number to 3.1.0.

New, backwards compatible features:

- Even shorter shorthands for elements in namespaces
- Custom element name resolver

...so minor version update.