perflib: Refactor + Allow user control over color assignment

This CL introduce a RenderContext object that stores configuration
information used in rendering. Specifically:
 - options such as the render clock (cpu/wall clock),
   whether inclusive or exclusive time should be used for
   color assignment, etc are stored here.

 - The actual font and fill colors are also obtained from
   the render context.

In addition, the canvas now exposes a setter to control
the color assignment based on the inclusive or exclusive times
of the method. Assigning colors based on the exclusive time
allows immediate insight into methods that consume the most
time inside themselves. In the absence of such hot spots,
coloring based on inclusive time would provide insight into
how time is spent in a top down fashion (starting with main()).

Change-Id: Ifb290f03f422199bf4029822a556f368de37fb96
8 files changed