Pass in sys as an argument to main

This allows the substitution of mock argv, stdout and stdin.
Add a full system test

This brings libproton to 100% coverage.
Use assert rather than nose.eq_
Run full system tests from a test data dir
Refactor generation of system test cases.

This ensures that they all get their own listing in the results.
Add another system test case.

This covers a team listed but not actually present.
Merge more tests from prophile.

These are system level, and get the coverage up to 100%.