Some cleaning up of lambdas.

Give Lambda a type synonym, and an Eq instance so that we can derive
Eq for Value.
Rework of error handling and types.

In particular, added a proper SchemeException type, and had eval results
return one instead of a String.
Added arity checking to lambda invocations