Expand out proplist found in request annotation

perf_stats is annotated as a proplist. Rather than using special
parsing, message_annotation() is enhanced to expand out the proplist. In
doing so, the parent key gets dropped.
Use a binary() for annotations keys, and do not remap it
Removed special parsing for perf_stats
Expanded test cases to cover annotations
generate_msg should work even with invalid annotation key
Refactored annotation config to use a list of atoms specifying keys.
Fixed type specs
Updated docs to the new reality
Removed user logging. This should be annotated instead.
Added test for oc_wm_request_writer:write()