Add '__int_to_char' builtin.
Prefer safety. Add unsafe functions just in case.

* Make 'head' and 'last' return option types.

* Use 'option' instead of 'if' with 'isEmpty'.

* Add 'unsafeHead' and 'unsafeLast' with old behavior.

* Rename '#!' to '#=' and '##!' to '##='.
Add 'find'.
Update 'tictactoe' example.
Improve error messages around definitions.

Closes #71
Require groups to denote values.

A value is a function which consumes no input and produces
exactly one output. This treatment should make parentheses
helpful for managing stack effects.
Make parse error messages consistent & test 'def' messages.

Closes #71
Improve error messages around string literals.
Use UTF-8 instead of system encoding for source.

Closes #73
Add block type hint for display purposes.
Improve error messages around type signatures.
Simplify signatures for constant definitions.

This allows omitting the function type arrow for the common
case of a pure definition that takes no inputs and returns
one result.

Closes #72
Simplify generalization. Separate declared & inferred types.

Not entirely certain this is sound, but it seems to
work. The previous solution was not getting the set of
unbound names correctly: it was only considering scalars.

This solution simply generalizes all of the free variables;
I have a hunch that this only works because all generalized
bindings are at the same (top) level.

It is still possible for type errors to depend on the order
in which definitions are inferred.

Closes #68
Reduce duplication of file decoding.
Remove suspicious 'Eq' instance from 'BlockTypeHint'.
Fix the tuple-product problem.

Still need to come up with good, consistent names.

Closes #75
Add Brainfuck example.
Update 'tictactoe' example.
Add alternate bases for integer literals.

For #76
Remove special token types for built-in types.