PEP 8 conformance, OS X 10.6 compatibility, code cleanup, new features

- Previously plutil was used to convert to json, but in OS X 10.6 plutil does not convert to json. In any case it wasn't necessary because the standard plistlib module converts from xml plist format to python format, so that's what we do now, skipping a conversion step.
- No need to lint the plist first, if the conversion fails it will give the same message, so we just try to convert and check the return code.
- Removed leftover artifacts from the obvious conversion from C code (parens around if clauses, trailing semicolons).
- When saving in old xml format, Unicode has to be converted to xml character references.
- Added backup_name keyword arg to XcodeProject.backup.
- Added ignore_unknown_type keyword arg to XcodeProject.add_file/add_file_if_doesnt_exist, PBXFileReference.Create/guess_file_type. Defaults to False.