pylint: there should be spaces after commas
pylint: add spaces around + signs
pylint: get all lines under 80 characters
pylint: a module name can't have a dash in it
Add a module docstring
pylint: don't use a wildcard import
pylint: avoid warnings about single-letter function parameters
pylint: replace map and filter with generators and list comprehensions
pylint: don't shadow the builtin copyright function
pylint: remove extraneous spaces in parentheses
Use a FileIO's context manager when writing the file

This should ensure that the file is properly closed after writing.
pylint: add a docstring
Rename IndependentClue to ParsedClue and add a docstring
0x02 probably indicates switching to bold
Fix a strange problem on Python 3

For reasons that I don't understand properly, decoding UTF-8 from
a bytearray seems to fail on Python 3, but it's OK if the
bytearray is converted to a bytes first.
Fix most pylint problems with commonccj.py
A small refactoring of the code to add fake clues for .puz output
Don't modify the clue lists on writing out in .puz format

We sometimes need to generate extra clues before writing the
.puz format (when a clue spans several entries) - previously
the clue lists stored by the ParsedCCJ were modified on doing
this, which is obviously undesirable.  This commit changes
that behaviour so that the extra clues are only added to a
copy of the clue lists generated for the purposes of creating
the output.