Remove hardcoded paths

* added helper functions to return variables for system we are running on
* removed hardcoded paths and socket type

This will allow us to expand to other operating systems without changing too many files. 
I'd prefer that if we hit an unknown that we return an error, I'm not really a fan of returning special values as error values... it breaks the standard go model of checking for an error, and then if there's no error, use the value.