Make amulet compatible with Python 2.7

Only code needing change is the argument handling in
waiter.raise_for_state which is pretty harmless.

One test needs a version check as it's mocking the builtin
open (tests should *really* not do that). Another test was
is drive-by fixed as it was mocking the wrong thing.

Changes `make check` to run tests on both Python 3 and Python 2
(which requires nose and mock ot be installed for both).