Broke out Hooke.run and Hooke.run_lines into HookeRunner.
This allows the main process access to the command process' possibly
altered Hooke instance. For example:
>>> h = Hooke()
>>> r = HookeRunner()
>>> h = r.run_lines(h, ['load_playlist test/data/test'])
>>> h = r.run_lines(h, ['curve_info --all=True'])
With the old implementation, second run_lines() call would fail
because the playlist was only loaded in the first command process'
Hooke instance, not the Hooke instance that the main (UI) process
held.