Added Tuple2 - Tuple9, Tuples, FList
Added Functor.java
Added Monoid.java
Renamed Mapping.java to Lists.java, added two exceptions.
Improved Monoid generics
Added infix method, $, to Functions.java
Added monads
Improved functional lists; added the FunctionalList interface, made FList an instance of said interface, small changes to Lists.java
Added null checks to the tuples constructors, and javadoc to the tuple classes
Moved the zip functions from Tuples to Lists, added/changed some javadoc
Merged branch develop into master