fixed ast-gen interface order

The order of interfaces ast-gen generates for AST nodes is now deterministic.
The interfaces were stored in a set of pointers, which could cause them to be
ordered in any arbitrary way, since pointers returned from operator new need
not be monotonically increasing. The set that keeps the pointers now uses a
custom comparison operator that compares the interfaces based on their names.
nodes with deterministic intf order

A side effect of fixing ast-gen is this (hopefully last) batch of updated
AST nodes.
fixed linking issue in driver

The driver classes are compiled into an intermediate library, which was not
linked against the library containing the AST code. On Mac OS X this was no
issue since all executables that used libdriver explicitly linked against
libast as well. On Linux, however, this is an issue since the order in which
linking is performed matters. The libdriver target now properly links against
the AST on its own and should therefore eliminate these issues.