create a per-user temporary directory for caching files like cookies

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
if the environment variable USERNAME is not set, try to get it from USER if otherwise just set to unkown

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
user getpass module to get the current username since it's saver than accessing the environment

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
corrected the way usernames are determined for per-user cache folder, to work in all cases

getpass.getuser() determines the username by environment variables. sometimes, in very rare cases, these aren't set correctly (e.g. by running 'su' on linux instead of 'su -'). to correct this, on linux, get the user's name by determining the processes uid first. this is not possible on windows (and other non-posix) platforms, which is why it takes an (ugly) conditional to solve this.

Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
Merge pull request #191 from arlimus/feature/per-user-temp-folder

Feature/per user temp folder