[Feature] XMPP javascript client plus ruby (vines) server

Open :

- [x] ~~mixed content; writing reverse proxy for rails application?!~~ using webserver as proxy solves it
- [ ] design tweaks
- [x] login with user credentials from external (authentication works; something else broken?!)
- [x] pod federation (was not tested yet)
- [x] move vines configuration to diaspora.yml
- [x] make jsxc text translatable
- [x] history / offline messages (see diaspora/vines#19)
- [x] write huge amount of tests (see vines tests)

(to be extended)

**I as a Pod Maintainer, what do I have to configure to make that work?**

* Apply the patch
* If you are using ssl
 * Apache: https://gist.github.com/Zauberstuhl/2d09330961614b12b642
 * Nginx: https://gist.github.com/Zauberstuhl/ee95e1eacefa6ddbec6e (no tested)
 * un-comment the bosh server variable "bosh_url" in diaspora.yml
* Restart diaspora

That was the magic!

**Your XMPP server sucks! I have my own already running!**

* Set "server" variable to false in diaspora.yml under chat section
* Follow the web-server configuration above
* Make sure the bosh url in diaspora.yml and of your xmpp server are the same
* Restart diaspora

**How can I add user/friends to my contact list?!**

Diaspora has standards like XMPP presence:

* both parties are not sharing with each other (equals XMPP 'none')
* you are sharing with the contact but your contact doesn't (equals XMPP 'to')
* the contact is sharing with you but you doesn't (equals XMPP 'from')
* you and your contact are sharing with each other (equals XMPP 'both')

Jappix is only displaying "online" contacts and you can see the presence of the contact if you and your contact are sharing (XMPP 'both')!

---

~~Everything written under `lib/vines*` was forked from https://github.com/negativecode/vines
except for `lib/vines/storage/diaspora.rb` and some minor tweaks on the configuration process~~
We moved the xmpp server to a extra [location](https://github.com/diaspora/vines).
`data:` or `blob:` URLs [are allowed](http://dev.w3.org/html5/workers/#dom-worker) as an argument One could create blob-URLs with a little hack if we don't care about IE 9-:

```js
var blob = URL.createObjectURL(new Blob(['(',
    function(){
        // library here
    }.toString(),
')()'], {type: 'application/javascript'}));
```

To you think it might be possible to create blobs for some files somehow in sprockets?