Update README

Move ci link to the top, and add a note that Java 8 is required.
Add StackTraceProcessor and SimpleStackTraceProcessor

StackTraceProcessor processes Throwable instances for
inclusion in log messages — with the intent being that most
implementations will somehow condense the stack trace
output to a single line.

SimpleStackTraceProcessor is basically an identity transform
that preserves the entire multi-line stack trace in the log
message.

Extract TestPrintStream to a top-level test class as it is used
by more than one test.
Upgrade Jacoco to the latest version.

It still doesn't properly support Java 7 features. :-(
Refactor StackTraceProcessor to use StringBuilder

Using StringBuilder instead of Appendable allows us to avoid
a bunch of useless checks for IOException (as StringBuilder)
will never throw an IOException, but Appendable might.
SimpleStrackTraceProcessor strips the last newline
BasicOpsLogger uses StackTraceProcessor

Instead of printing stack traces to output directly.
Check StackTraceProcessor implementation set by factory

Add a protected getter to BasicOpsLogger to facilitate the test.
Code cleanup
Code cleanup