mark methods static
warnings
allow fields to be defined as the executor class, not just the interface
oops, remove redundancy
guard against stack out of bounds
Make super complex methods High Confidence
Added CSI support for Scanner
Added a little extra info to CSI

Also removed redundant UNKNOWN_ENCODING clause.  Since I can't use
multi-catch (we build with 1.6, not 1.7), IllegalArgumentException
should catch both IllegalCharsetNameException and
UnsupportedCharsetException
CSI Long description now says which method to use instead

E.g. The message reads something like
`This method "new java.io.InputStreamReader(InputStream, String)"
needlessly uses a String literal to define an encoding. A built-in
Charset could be used instead like: new
java.io.InputStreamReader(InputStream, Charset)`

I think this can help understandability, especially if the replacing
sigs gets complicated.
Tidied up replacement in CSI

Also added XMLEncoder
Added more patterns to CSI

After a long search with grep, "UnsupportedEncodingException",
"UnsupportedCharsetException" and a few other Strings, I'm relatively
confident they are all represented.

Also, added more verbose test cases, especially with the newly added
patterns.
Fixes a really minor html glitch
Merge branch 'outgoingChanges'

Conflicts:
	etc/messages.xml