Remove feature envy in CharlotteViewModel

CharlotteViewModel was wanting to know a lot about the Build and acting
on it quite a bit. Move those decisions and behaviors into the Build
object where they belong.