simple.viewer - Modifying callback API to pass viewer info

We now pass viewer state to reshape, grid and axis callback (and
eventually display and keyboard in future).   This changes callback
API; if it becomes a problem, we'll add arity check to the callback
to support backward-compatible callbacks.  Let's see.
Change display callback api in simple.viewer

The continuation of the last commit; now display callback also get
viewer state vector.  We support old api by checking the arity of
display callback, though.  It's an ugly hack and we'd like to get
rid of it in future.