Fold the default handlers into the reader module.

There is no reason to handle the default reader handlers as partially applied functions
since the only application is when all parameters are directly known. Avoid function
passing and closure generation as well as making module inlining more viable later.
Introduce a profiler run for the JSON case.
Allow the benchmark tool to profile any kind of format.
Optimize is_cache_key/1.

Force things to analyze the head only and do so more effectively.
Avoid searching the whole string for cacheability.

Cacheability is determined by the head of the string only. So match on the string head and use this for the analysis.
Add measurement for the underlying decoder overhead.
Report new timings.