Added lots of docstrings and did some light rearranging.
More documentation.
Changed set_hopper to accept a hopper_spec instead of its two pieces.
Fixed test for new set_hopper behavior.