Every time the user scrolls, DrawLine is called many times. Each time
this happens, termbox.Flush is called, leading to unnecessary cpu usage.
This is eliminated by only calling termbox.Flush at the end of all the
DrawLine calls.
* Added scrolling with scroll wheel on mouse.
* Added scrolling with vim style j/k keys.
* Changed scrolling so that it is more smooth and the whole screen is
not redrawn each time
* Changed channel keyboardQueue to a buffered queue, so there are not
too many scroll requests, and the draw commands can be done once the
queue is empty.
* Added UpDownJump in profile, so user can set how much PgUp/PgDown jumps
* Have not tested with a _huge_ number of stocks in ticker, probably
worth doing
Adding an 'offset' to the quotes draw function in screen.go in order to
allow moving down the list of tickers, using PgUp/PgDown or the Up/Down
arrow keys.
Attempting to load an invalid config file will wipe the existing config, leaving the user with an empty config.
This change adds a check when an invalid file is loaded, and asks the user if the invalid config file should be overwritten.
If the user chooses `yes`, then the default config is loaded instead, and the existing config will be overwritten with it.
If the user chooses `no`, then the program exits.
Note this is intended only for the "interactive" mode (the only one existing right now). If and when we go forward with the suggestion in from issue #88, there should be no prompt, just an error message on stderr.