Fix enum template args

This pull request adds support for enums as template arguments to the clang frontend.  gccxml doesn't handle this yet.  The gccxml issue is due to the ts.canon not understanding enum template arguments, since it doesn't know anything about enums.  The same issue shows up in the clang frontend, but I've hacked around it for the moment.  This may be unwise.