Logging custom annotations for PHOENIX-1198

This PR adds custom annotations to log lines generated in Phoenix's client-side code. It builds on PR https://github.com/apache/phoenix/pull/13 and uses the same mechanism to pass custom annotations to connections. These custom annotations are only added to client-side code logging that is within the context of a user operation (meaning a PhoenixConnection is available). No new log lines are added here. Only existing log lines are changed.

Usage:
1. Add custom annotation properties when creating a Phoenix Connection. e.g. `phoenix.trace.custom.annotation.a1=v1`
2. Log lines in (some of) Phoenix's client-side code would look like this: `{a1=v1} something logged`

Ignore the following files here, since they are covered in PR #13: BaseTracingTestIT.java, PhoenixTracingEndToEndIT.java, TraceReader.java, Tracing.java, JDBCUtilTest.java

@jtaylor-sfdc 


Tracing-only changes are in PR #13. This PR was supposed to be only for logging-related code but I screwed it up because I pulled in my tracing changes used in #13 because for logging I am using the same way to pass annotations in. Tried to make that clear in this PR's description but clearly failed. Sorry about that. Maybe take a look at #13 that has tracing-only changes?