NCBC-723: Timings - public interface level, server level, IO level

This commit adds an optional timing feature for all memcached operations.
The timings are taken at three levels: public interface (level three),
before IO begins (level two) and for IO only (level one). The timing
information is logged to the log appender in  the format:

'Timing: [{level}|{operation}|{opaque}|{time}|{key}]'

For example:

Timing: [Two|Set`1|29389|2.401|key30690]

This format makes it easy to grep for the timings info and then parse the
results for analysis. It also makes it easy to trace a key and opaque as
it goes through the operation pipeline.

NOTE: when enabled will cause significant performance degradation!
NOTE: requires a LogLevel of DEBUG and EnableOperationTiming to be TRUE
for the timings to be enabled.

Change-Id: Icd48fffac311d4a57bf2eef150d1f225fb610572
Reviewed-on: http://review.couchbase.org/43419
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Simon Baslé <simon@couchbase.com>