hy/lex/parser.py: Move most of the identifier mungling into a def

As a refactoring step, move the identifier mungling done in t_identifier
into a separate def.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
tests/lex/test_lex.py: Add a few tests to cover identifier mungling

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
hy/lex/parser.py: Add support for sub-object mungling

With this patch, every identifier is split up along dots, each part gets
separately mungled, and then it is all joined back together. This allows
for fun stuff like (.foo? (Foo)), and even more contrived examples.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>