logviewer.py:  Did a bit of code organization.
logviewer.py:  `flatten_log()` now uses the rows/columns metadata embedded into the log when it instantiates the terminal emulator.
logviewer.py:  Added a '--metadata' command line option that prints out a given log's metadata to stdout.  If it detects you're using it interactively it will pretty-print the JSON data to make it more human-readable.
logviewer.py:  Improved the '--flat' command line option so that it handles the 'cursor_right()' escape sequence better.  The output is MUCH improved for stuff like that now.
terminal.py:  Fixed a bug in `cursor_right()` where it would throw an IndexError if something tried to send the cursor past the right-hand edge of the screen.
terminal.py:  Fixed a bug in `cursor_left()` where it would throw an IndexError if the cursor was past the edge of the screen (due to an escape sequence that put it there).  This (edge case/strange situation) should now merely result in the cursor's (virtual) location being adjusted to the left as it should.