Add scanner for dots.
Fix module and block confusion.
Add parser for nested names.
Refactor language representation.

Use pointer types instead of structs
Add Stringer interface
Rename scanner state functions.
Allow hyphens on symbols and names.
Refactor scanner matchers.
Fix two missing string representations.
Hide some fields that don't need to be public.
Remove one extra function call when using Nil.
Add check for unbound names.