integrated @resetcwd, fixed bug in sync-drive

* sync now returns a list of paths (absolute paths) to all the temp files it
syncs.
* @resetcwd added to all methods that have os.chdir(...) in their body. this
also means all use of CALLING_PATH from ENV has been removed.
* error messages are captured in exceptions and those are returned instead of
my own.
* the bug found in sync-drive was something i didn't consider at the time and
due to the lack of testing it wasn't found until now. the problem was:

    - user manually goes into their google drive to remove a file. because
      movies and shows have paired files (added, viewed), it's hard coded into
      the code base to always expect those two files for both movies and shows.
      if the user removes one then we're screwed. this should of been accounted
      for and the missing file should of just been uploaded.

    - the other was an actual bug due to poor implementation. the --sync-drive
      command lets you to only sync movies or shows using [--show|--movie]
      however, i didn't quite test that functionality and turns out it didn't
      even work. i honestly forgot what caused the bug but now it's fixed. i
      think it was due to a pathing issue.

      when shows or movies are sync'd, they're first downloaded from drive and
      then saved to a temp folder. the files from the temp folder are then moved
      to the data folder. if a file didn't exist in drive then it couldn't be
      downloaded and thus couldn't be saved and then moved. although this was
      the case, ftrack still assumed the temp file existed and tried to move
      which caused python to throw an exception.

both of the above mentioned are fixed and should properly work. i did some
testing this time and everything i tested is OK.