External API hooks cleaned up

Crucible - Cleaned up the API
Perforce - Cleaned up the API
GUI - Loginwidget has support for saving credentials
GUI - Moved api.core into gui.core because the core was used for gui
applications only and the different cores were for the environments you
were running the gui in.  API should not deal with any gui related
things.
API - Utils has two new methods for getting a temp file given a filename
and isBinary check method for testing if the data of the file is
actually binary.
GUI - Tweak to the colorpicker gui elements to better show the color
selected
GUI - renamed utils to guiUtils for clearity between api.utils and
gui.utils  -  side note api.utils should get renamed too/refactored