Remove unnecessary semicolons after function definitions.
Polymorphic classes should generally have virtual destructors.
Port to LLVM 3.5.

There wasn't much to this, really.  We just need to deal with a single
LLVM header that moved to a different subdirectory.