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 

@galfert you're right, too much noise, it's a habit of mine to always define anonymous function with a space between the function keyword and params. And when I am walking through a file sometimes I find my OCD kicking in. I can make it consistent if that helps? :)