CodeGen cleanups

Made CodeGen_Internal not include CodeGen. Closure is now its own
class, which never talks to a CodeGen object. It has docs and a
cleaner interface. It just takes llvm contexts and/or builders to
do its thing.

Also removed all the force_no_alias stuff. It shouldn't be helpful
in theory given our tbaa tags, and it made no performance difference
in practice on the stuff I tested. They were both there because
tbaa came later and superceded it.