hoppers -> master

The current state of the hoppers is good enough to start using in other branches.  This is an intermediate state, but what is here seems solid and passes the nosetests.  I'll complete the hopper and hopperchain classes later in another branch.