Support talking about user types in Yang code.

Modify grammar to allow identifiers in types (a lot more permissive in
general). Resolvess a bunch of issues with the parser.
Support the changes in static checker and IrGen. There are still a few
unresolved issues; in particular, we need an extra wrapper node around
function arguments.