Make plist module executable

The plist module can now be executed to parse a file given on the command line.

This is very useful for testing.
Use ArgumentParser in the test module.
Run tests under debugger when --debug is given on the command line.
FIX missing self in NSPlistReader.get_encoding
Turn NSPlistWriter.IDENTIFIER_RE into a whitelist

Keeping a black list is to complicated, a whitelist should be easier. I would have to blacklist all non-ascii characters.
Add wrap_with_codec to testhelpers module.
Wrap StringIO in test_pbxparsing with a a codec.
Save the encoding of a project file.
FIX imports in the antlr runtime were wrong.

Changed import paths to relative paths.
Move nextstep.escape_string to own escape module.
Use own string escaping for escape_string.

Python's version has problems with unicode :(.
Add unescape_string, the inverse to escape_string.
Use unescape_string to unescape strings in the parser.
Do not write any comments for TargetAttributes in the project file.
Add a blacklist for which we do not generate comments.
Add DummyProjectForMergepbx.pbxproj to fixtures/parse
Keep the encoding when merging files.
FIX use wrap_with_codec in test_pbxmerge, so we can write unicode to merged_buffer.
Use argparse in mergepbx.py
Add output cmd option to mergepbx

You can now store the merged result somewhere else that in the mine file. This is very useful for debugging.