Properly cleaning up the display tabs

This patch properly cleans up the display tabs so that none of the tab
data is being leaked between refresh changes

Signed-off-by: Dan Kalowsky <daniel.kalowsky@intel.com>
Removing a documented memory leak

A non-elegant solution to it, but it works well enough to remove the
documented memory leak.  Proves to provide a much larger impact on
memory constrained systems.
Remove another memory leak

Pointer gets over written without ever being properly cleaned up.  This
should solve that problem.
Mark pretty_print_init as initialized

There is a check for it, but it's never actually set.  Now it's set.
Limit sprintf to buffer size length.

Not completely needed, but good practice.  Limiting sprintf to the
length of the buffer size.  This patch not completely necessary as it's
unlikely to be an issue here.
Stop buffer overflow

On some builds of Android, we are seeing entries that overrun this
buffer causing some ill-advised effects.  Limiting the buffer copies to
the size of the allocated buffer solves this issue.
Clean up potential buffer issues

While no issues have been seen in this section of code yet, it's likely
the same issues that show on the active display will also show on the
report process.
Adding a clean_shutdown function

Function is designed to be a on stop place to clean up the entire
application at shutdown time.