parse special character forms
Add error primitives for r7 compat

The error primitive is not quit up to r7 -- it has no message or
list of irritants, just an error subtype.  This is sufficient for
read-error? and file-error?, but not enough for error-object-message
or error-object-irritants.

Also add some trivial error functions:

* error-object?
* read-error?
* file-error?
Make read and eof return error objects

(read obj) now returns an error object of subtype read,
and read-char now returns an error object of subtype eof
on eof errors.

this is more r7 conformant
fix trig functions
mark trig functions complete