Migrate to bluebird

Alright! I finally did it. I had most of it done a few days ago but got stuck on some weirdness in sync.js and had just 1 elusive bug that I finally managed to squash. 

So here is the initial pull request to migrate completely off promising and to bluebird. I'm very happy with the way bluebird works. You can search for "Promise.all" in the code to check out a couple of places where I was able to refactor a hacky bit of code to use an array of promise'd functions, calling the final bit of code after all other functions were complete. 

I have not tested any of the build process yet, so this cannot be merged straight away, we'll need to inject the minified bluebird `js` into the build files. If anyone wants to do that and update the pull request that'd be great, otherwise I will try to get to it this weekend. 

Also, @skddc I think I will need to squash my commits down to size, but I'm new to that, could you send me the link to that doc you had which explained the process? 

Let me know what you guys think so far, anything to fix/redo/rip out?
references #770 

@Ragnis I started off trying to refactor this file to be less convoluted, but realized it was much more work than should be included in the promising switch pull request, so I kept the same callback structure, but since I'd already defined this function integrated it into the code I decided to leave it. Shouldn't make any difference and gives an extra description to what it's purpose is for.