Separate Nodes and Patterns into two hierarchies.

Enables more precise AST loading and easier typechecking of certain nodes at
runtime.
load, nodes: Handle KernelTry.

Makes unittest load again.