Inreased compiler strictness

Added warnings for unused variables, extraneous else, staticable methods,
non-defaulted switch statements, missing @Override, dead code, empty
control flow, empty methods, and untyped generics.  This led to some
minor bugfixes.