Eliminate tabs from template directives

This commit changes the Ashier template language by removing the
mandatory tab character from template and variable marker lines.  The
existing syntax is frustrating because most document formats do not
preserve tabs, so users cannot see where tabs are needed in example
templates, but they must manually convert spaces to tabs where needed
after copying examples from a document into a text editor.  The new
syntax, shown below, solves both problems:

  >High score: 12345 points
  ?            .....

This syntax change is not backward compatible.  Since we are breaking
backward compatibility anyway, this commit also completely prohibits
tabs in template sections (a) to reject templates in old syntax and (b)
to help users avoid hard-to-diagnose marker alignment bugs.
Standardize on "except ... as ..." syntax
Attempt to drain controller output on POLLHUP

Testing on Linux 3.13 indicates that, if a process connected to a pty
slave writes to the terminal and terminates, Python epoll sometimes
returns select.POLLHUP prior to select.POLLIN on the pty master.  This
out-of-order delivery may cause Ashier to drop controller keystrokes.

This commit works around the problem by copying data from the controller
to the child pty when Ashier receives select.POLLHUP on the controller
pty.  If epoll happens to deliver updates in order, this final copy
attempt will fail, so this commit also makes CopyData swallow all
OSError exceptions.
Make controller process arguments optional