separate parse.hxx into smaller parts

... so that node.hxx no longer needs to include parse.hxx.

Change-Id: Iac1e21c208e3f0e3fd8ece16eee345e81574a0aa