Correct undefined method return internal error

The internal error that resulted from a method returning either
undefined or null logged to the console and then produced an
unrenderable exception. This change removes the log and correctly
converts the message to a Grace string before raising the error.

An overly long line in the interpreter has also been trimmed.
Add primitive boolean accessor to booleans

Grace booleans now feature an asPrimitiveBoolean method to mirror the
asPrimitive methods in the other built-in objects.
Add confidential-only access to fields

Methods can now have an isConfidential property that indicates that it
cannot be accessed from outside of a self reference. Fields are marked
as confidential by default, and there is currently no way to make them
public.
Implement proper annotation system, add publicity

Previously, annotations were just being evaluated and discarded with no
impact on the program. Now annotations are required to implement a
particular method corresponding to the item they are annotating, and
that method is passed the underlying implementation of the item to
modify at will.

This new system has been used to implement the publicity modifiers
public, confidential, readable, and writable. The former two remove and
add confidentiality respectively, whereas the latter two expose either
the reader or writer of a var. The readable annotation is not a valid
annotation on a def.

The built-in types have been split out into their own module to mirror
the exceptions and publicity modules.