Major overhaul of function parse().
Broken down with helper function handle_control_sequence().

The program's behavior may have been modified slightly. Entering an
invalid control sequence of form %{ ... } will omit the entire sequence. Also,
if a closing bracket is not provided, the program will not display the
remainder of the sequence.

Created struct "char_draw_args" for easier inter-function refrences to a set of
data that is usually stored and used together.