Mburton/exp/annotationprocessing nonsilver plus optional binding

@stephanenicolas I created this PR to help me review the code.

NOTE: this PR contains a number of changes that are unrelated to the annotationprocessing stuff, eg. github.com/roboguice/roboguice/issues/174