Make scanner recognize atoms

The scanner only recognizes parenthesized lists. We often need more
basic types and should add support for them. Add support for atoms to
the scanner.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Make scanner recognize quoted strings

The string scanner does not recognize quoted. Add a method to the
scanner which scans the string for quoted strings and returns them
without the quotes.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Make scanner recognize NIL

The non-existence of a string or parenthesized list is represented in
the special form NIL. Return nil if found and move the start counter
forward.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>
Make scanner detect if item is a string or atom

Some data items can be either a string or an atom. Detecting which one
it is requires a bit of code so instead of doing it everywhere where we
want to scan for it we add a convenience method that does it for us. The
new method will check if the item appears to be quoted and in that case
scan it as a string. Otherwise it is scanned as an atom.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>