Add a parametric Nullable{T} type

This adds a parametric Nullable{T} type that can represent a value of type T that may be missing. It's got a very minimal interface with the hope that this will encourage you to resolve the uncertainty of whether a value is missing as soon as possible.

Work left to do:

* [x] Get test suite working
* [x] Add a section to the manual based on the docs available at https://github.com/johnmyleswhite/NullableTypes.jl

I also did a little bit of whitespace removal along the way, which is hopefully forgivable.

Not really. How about we leave it out for now? Ideally, people would just write this by checking for non-null and then doing the safe get but LLVM would eliminate the second check. I suspect this will work – LLVM is good at that kind of duplicate code elimination.