Checker framework support

I use the (excellent) [checker framework](http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html) for null pointer analysis.  Attached are the minimal changes I needed to make to get a clean bill of health in my project after introducing immutables.  At some point I may try and see what it would take to implement proper checker framework annotations in the generated code instead of just using suppress warnings everywhere, but checker framework has a couple of difference in annotation placement with some other tools (in particular annotation placement on arrays and nested types) that may make it difficult to satisfy everyone.