Massive Rewrite: Promises and better error handling

... and now using winston for logging!

Change-Id: I85ec60b82551757f5306d0388730506981172fa3