Discern some orphan whitespace

Whitespace that is clearly orphaned because preceded by an empty token
is now considered separately from general whitespace.
Update raise* to accept an optional result-type

`raise*` now accepts an optional keyword argument `:res` to specify
the `:result-type` to be raised.
Defaults to `:replace`.
Refactor form-checker

Uses the new token and form detection to return useful information from
a wider range of relative cursor positions.
Version 0.0.3