Split helper.py into helper.py and internal.py

From now on helper.py will contain helper functions intended
to be used by client programs and internal will contain
exclusively internal helper functions. If a function is used
both internally and by client programs then it should be placed
in helper.py.