Add gitignore to ignore swapfiles, pyc-files and pycache folders
Remove trailing whitespaces
Retab files
Add missing : to else statement
apply 2to3 to source files
Reactivate the initialisation error in init method.
Comment was:
     For some reason, PL_initialise is returning 1, even though everything is
     working
Solution is:
     Result is a boolean variable (i.e. 0 or 1) indicating whether the
     initialisation was successful or not.
     (See SWI-Prolog documentation for PL_initialise)
Introduce the check_string decorator
Minor bugfixes, let more functions rely on the new decorator
Change getter for value of Atom and Variable to return only strings,
no bytes
Add missing string check to register foreign
Let the __str__ method of Atom and Variable use value instead of chars
in order to prevent returning a bytes object
Remove malfunctioning and unused import from test_issue_3
Let the monkey patch of sys.exit to use PL_cleanup
At this point Testing ran without errors on my system
(which was python {3.2, 3.4} on ubuntu 14.04 x64)

I also moved the monkey patch to core.py. This has the following reason:
The delete method of Atom calls PL_unregister_atom which leads to a
segmentation fault when done after PL_cleanup.
(unfortunately this is not reproducable with a small program)
Therefore we need access to some variable which indicates whether the
cleanup has been done or not before we decide to unregister or not.
Easy.py does not depend on prolog.py and therefore we need to set the variable
elsewhere.
I could have put it into easy.py but I chose core.py instead because I thought
it would be better in case someone else tries to code and only imports
core.py but none of the other files.