Fix KeyError exception on missing function

When looking in the dictionary of converted functions, we could get a
KeyError if we attempted to locate arguments for a function that did
not exist.

Moved `declaration_converter` method to be at a more appropriate
location in the class.

Added docstrings to `declaration_converter`.

The temp file that is created during pass #2 is now properly removed
when the script exits.