Clean up Interaction.py

I wanted to submit this first to discuss any changes before I go through the other files. This is also the "central point" of the application so I thought it best to do first, as this is often where people start looking.

Main changes are:  
- make code follow [pep8](http://legacy.python.org/dev/peps/pep-0008/), the standard Python style guide
- make docstrings follow [Google standards](http://sphinxcontrib-napoleon.readthedocs.org/en/latest/example_google.html), including module/class descriptions as well as function descriptions that include types & descriptions of arguments and return values
- remove dead code (undo, edit, save)
- refactor (e.g. `execution_z_offset`) or make meaningful (e.g. 0 &rarr; `Side.RIGHT`) magic constants
- make all private functions named so (with a preceeding `_`)
- organize all functions (based on public/private and functionality patterns)
- annotate long argument lists to functions with their types