Don't expand already expanded template args.

Also, change the expansion from has_foo to foo?, for
redability and less chance of collision.

Makes unittest pass again.