Factor File::addAtom out to MutableFile::addAtom.

This removes a bunch of llvm_unreachables and makes a File's mutability part of the type system.

llvm-svn: 172297
13 files changed