Use popsicle request library

Updated to use the cross-platform interface of popsicle and support promises instead of callbacks.