Dlang parser improvements

Added 'dkind' constructs for the D language parser. This allows better customisation of the parser, similar to the Java one. I've also beefed up the simple D unit test.
Ideally we would use `alias` instead of deprecated `typedef`, but for now it's probably OK.