Standardize callbacks

Unknown callbacks now use "code name", where name is optional
Formatting
Fix parameter parsing for internal dispatch.
Major Refactoring

 * Moved all callback functionality into Events module.  VTs can now connect multiple
   callbacks, and disconnect at will.

 * Removed tables, replaced with a on_{esc, ctl, csi, mode_set} DSL that can yield
   a callable.

 * Replaced some of the general names with more specific :_code_#{mnemonic} out of the
   documentation.  These things can be tricky and subtle, so being able to audit the
   implementation against the documentation helps.

 * The entire processing machinery has moved to 1-character-at-a-time.  This sacrifices
   speed in the name of accuracy and understandibility.  Multiple cases were found in
   the implementation that could not deal with the VT processing each char individually,
   instead of larger buffers.

 * Implemented DECOM, DECAWM, LNM, and DECOLM.  Explicitly broke scrolling tests, as they
   were counter to the spec w.r.t CUP.  This made vtttest happy.

 * Pass all vttest "cursor positiong" and "screen features" tests except the autowrap columns,
   which Konsole, tmux, and Terminal.app also fail.  (Hooray xterm!)

 * Removed some options that may conflict with new DEC modes added.

 * Attributes array now keeps a matrix of Fixnum mirroring the terminal array.  Previously,
   it kept a packed (as in [].pack('c')) array of lines where each two bytes represented
   an packed attribute set.  This removed a lot of chances for tricky off-by-ones, and should
   speed up terminal attribute access, trading memory usage.

 * Options have been moved from option_set('STRING', v) to normal Ruby attributes.

 This commit represents the combined work of 10 liters of Mt. Dew, 4 packs of Camel Wides,
 thousands of '$ resets's, and the growth of a moderate Unix beard.