Clean up.

Add compiled python files and project files to the git-ignore. Cleaned
up implementations all around, and simplified the Signals interface.