complete rewrite of the core

Rewrite the core with a State monad. Handle errors better. Also
rewrite part of the unit conversion system.

List sum and mean are disabled until converted to the new eval system.

New command-line options to evaluate an expression and print the stack
contents, either from argv or stdin.
add a makefile
adapt list sum/mean operations to the new core
clean up uses of Core.calc in Operators

Several operators evaluate expressions with Core.calc in similar ways,
refactorize and clean up.
fix parser bug with extra spaces

If a command contained more than one space between two arguments, all
the extra spaces were considered to be actual input. Skip them.
add % (op_mod) to the list of operators
State monad cleanup

Use "modify" instead of "state".
convert Context to a record

Use a record with fields { ctxStack, ctxMemory } instead of a tuple
(Stack, Memory).
add settings and output base for ints

Add settings to the Context, containing base (for ints) and unit for
angle (rad/deg).

New "settings" command shows the current settings.

New "base" command sets the base used to display ints on the
stack. Other types are displayed as before and don't depend on the
base.

Default settings are decimal + radians, as before.
Introduce helpers for Context modifications

New helpers: modCtxStack and modCtxMemory.
Start using them to clean up a bit.
document "base" setting