Initial Java 8 code changes
Replaced @Nullable with Optional.
Updated the public JavaDoc.

Fixed some typo's and removed all descriptions of "null" return values
and parameters. Neither can ever be "null". The package-info now says
that too.
Use java.util.Optional inside the implementation where possible.

In the quest to eradicate all kinds of null-checks, the code internally
uses Optionals now.

Because of that there's now an UncheckedXmlProcessorException that
wraps a checked exception in an unchecked one, so that lamdba's can
be used.

I'm not quite happy yet with some of the casts and the
suppression of unchecked warnings, so this is definitely a work in
progress.
Fixed JavaDox issues for JDK 8.

Java 8's JavaDoc compiler is more strict than Java 7's. So I had to fix
some comments.
Updated the copyright for 2014.
Code cleanup.

Removed some unused imports and reformatted some lambda's.
Fixed the Travic CI link for the jdk8 branch
Simplified a lambda on an Optional.

Creating an Optional inside a lambda requires flatMap.
Just returning a value allows the use of map.
Doh!
Added support lambda's and method references in the XmlProcessorBuilder

Lambda's and method references could not be passed to the addParser and
addControllerFactory methods, because these synthetic types do not
retain type information at run-time. Reflection doesn't work.

To solve this:

- The original methods detect this situation and throw an
IllegalArgumentException.
- New interface methods were added, allowing the type to be passed as
 a second argument (in a type-safe manner).

 Now lambda's and method references can be passed!
Typo in the README.
Made the @Namespaces annotation @Repeatable.

On Java 8 there's no need to use "wrapper annotations" to support a list
of annotations. The wrapper annotation still exists, but it's not
needed in client code.
Made the annotation values for @Node, @Attribute and @Source optional.

In Java 8, the names of parameters can be accessed through
reflection, provided that the code was compiled with the
"-parameters" option enabled.

This is a perfect candidate for code conciseness, or convention over
configuration.

If you parameters have the same name as the XML elements they
correspond to, then the annotation's values can be left out. Clean code!