Adds very rough version of initial integration testing.

This just tests the "build" functionality (not "link"). It tests:
 - a single template file is parsed by staticjinja and output is produced
 - the output file is in the expected place
 - the output file contains the expected contents

This could mainly benefit from reworking to use an actual test framework (maybe a unit test framework, though it's really integration testing). Key goals would be:
 - break current test into multiple distinct tests for the checks above
 - give better test output on failures, particularly expected vs acutal value
 - provide a cleaner entry point into test run, possibly allowing integration into a larger test suite
Moves some integration testing code into common module for re-use.
integration tests: Removes unneeded import in test_build.
Adds another integration test, now for "link" step.

This also includes some re-organising existing test code to allow re-use.
integration tests: rewrites test_link to use test framework unittest.

This is the unittest module from the standard library.
Integration tests: Moves re-usable parts of TestLinkTestCase to class in common.
Integration tests: moves useful features of test_link's setup into a mixin class in common.
Integration tests: Rewrites test_build to use unittest framework.
Moves most of di to a separate package, "fang".

fang will be published separately once all this work-in-progress is finalised.
Adds various notes about dependency management.

No functional changes, just comments.
Adds new config module to contain various config values.

These will probably be restructured so rather than being constants, they're values which are configurable via CLI options, etc.

This initial version is just trying to capture all the various "constants" build and link depend on.