Add test harness and Python 3.9 CI test job
This MR closes #18 (closed) by implementing a basic PyTest harness with one functional test, and accompanying CI integration.
The CI job (correctly) fails right now because of #21 (closed) (and #22 (closed)), so can be rebased as each of those are addressed to identify further issues.