Stringify all source dicts + fix indentation

This PR is more fully summarised in commit ed296db but the gist is that we str() all keys and values being passed in for the source dictionary. This is arguably the exact behaviour we want, seeing as we've said that they're all meant to be strings.

This fixes a couple of silly bugs with obviously-coerceable input (*cough* integers).

NB: this includes a bunch of PEP8 compliance changes (convert tabs to spaces), thankfully limited to `test_pymarquise.py`
Happy to leave it an exception until we sort the semantics of that out.