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.
This looks like a hack in the geany source code to read a module name after a package keyword? This is actually wrong. The package keyword is a protection attribute such as public or private.