Update master based on semester's changes

I merged all your updates into black_dev. I then merged everything into my master. The current master in my repo should have all of the updates that we made over the semester. This will migrate all those changes into your master. You should merge all this back into your yao_dev as well just to make sure it is all up to date.