Proper allocation, better modeling

Gives proper allocation. Still working on a good way to do prioritized allocation. Also cleans up a good bit of our modeling code. Namely, makes clear boundaries between facilities, initial capacity, capacity after allocation, and required capacity.