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 Ah, you are talking about the characters used for line endings? I'm not sure why you think this is not a standard UNIX file with the correct line endings. All of these files are edited by me in a UNIX environment, and testing with `vim` and the `file` command all show the correct line endings, and UNIX file format. 

What I thought you meant was that there should be a complete new blank line at the end of each file, which I don't think is necessary for any technical reason.

```
$ file src/*.js
src/access.js:          ASCII text
src/assets.js:          ASCII text, with very long lines
src/authorize.js:       ASCII text
src/baseclient.js:      ASCII text
src/caching.js:         ASCII text
src/cachinglayer.js:    ASCII text
src/discover.js:        ASCII text
src/dropbox.js:         ASCII text
src/env.js:             ASCII text
src/eventhandling.js:   ASCII text
src/googledrive.js:     ASCII text
src/i18n.js:            HTML document, ASCII text
src/indexeddb.js:       ASCII text
src/inmemorystorage.js: ASCII text
src/localstorage.js:    ASCII text
src/modules.js:         ASCII text
src/nodejs_ext.js:      ASCII text
src/remotestorage.js:   ASCII text
src/sync.js:            ASCII text
src/util.js:            ASCII text
src/version.js:         ASCII text
src/view.js:            ASCII text
src/widget.js:          ASCII text
src/wireclient.js:      ASCII text
```

```
$ vim src/cachinglayer.js
:set list
:$
420 })();$
```