Merge pull request #16 from kjlubick/fixHESFalsePositives

A variety of dogfooding fixes, and refactoring cleanups.
add fp for pcail with switch statements
don't report PCAIL in switches (overly conservative loop might be in a switch statement)
add test for emptyList() an PRMC
guard against AIOOBs
ignore new BigDecimal(0|1) as it's common and conversion safe
update slf4j to 1.7.7
remove stupid ../../ generated by findbugs
simplify: use internal classnames for lookupClass (use /)
add java/util/Calendar as risky for prmc, somewhat overly cautious, but not too much
oi
Updating logger tests before I mess with them

Also, to try to replicate kjlubick/fb-contrib/issues/7 before fixing it
A simple fix to kjlubick/fb-contrib/issues/7
Added some examples for NAB related detectors
this.toString() no longer causes ISB

Some people, like myself, will be explicit and do something like:
builder.append(this.toString);
or
System.out.println("Problem in "+this.toString());
which used to cause an ISB.  Because "this" can never be null, there's
no need to create the bug.

Also improved the message
Made a better message for ISB_INEFFICIENT_STRING_BUFFERING

The example helps, especially when the compiler is doing something
behind the scenes.
Added samples for new ISB detector

This "overeager optimization" seen in lines 86 and 93-96 actually are
less efficient than the equivalents in 80 and 86.  In the latter case,
the compiler prejoins the strings, which means no appending is done at
run time.

I've seen SQL queries created like this, appending all constants.
Discovered SPP_DOUBLE_APPENDED_LITERALS

Which basically already covers the detector I was going to add.
This commit undoes the previous commit.

Before I discovered the duplication, I had refactored
InefficientStringBuffering for easier reading.  Afterward, I made the
SPP message better.
Added examples and clarified language for some bugs

NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION
DDC_DOUBLE_DATE_COMPARISON
UCPM_USE_CHARACTER_PARAMETERIZED_METHOD

The <pre> tags preserve the unusual indentation, so I'm switching them
over to <code>, which keeps the monospace font, and keeps the code
left-alligned.  This, of course, requires non-breaking spaces.
Refactored WriteOnlyCollection

I'll be using it next commit to deal with some HTTPComponents