Add socket.io and make caching optional

Hey,

I needed an angular module for dpd and found yours, however, I also needed socket.io support for it, and didn't really need caching.

So I added socket.io and made caching configurable. I also made it possible to specify a different server where the API resides which was important for me.

Additionally I fixed some of the white space issues which is why the diff seems so big.

The changes should be backwards compatible, but it adds new configuration options like:

```
app.value('dpdConfig', { 
    collections: ['categories'], 
    serverRoot: 'http://someotherserver.com/', // optional, defaults to same server
    socketOptions: { reconnectionDelayMax: 3000 }, // optional socket io additional configuration
    useSocketIo: true // optional, defaults to false
    noCache: true // optional, defaults to false (false means that caching is enabled, true that it isn't)
});
```

The socket.io additions can be used like:

```
app.controller('bodyController',function($scope, dpd){
    dpd.categories.on($scope, "changed", function (result) { // this handles "categories:changed"
    }
    // or
    dpd.on($scope, "categories:changed", function (result) {
    }
}
```

$scope is needed there in order to clean up the event automatically when the scope is destroyed (such as in a route change).

Additionally, the get calls return promises so you can do this:
```
            dpd.categories.put(id, { something: 123 } )
                .success(function (result){
                    
                })
                .error(function(err){
                    
                })
                .finally(function(){
                    
                });
```


Let me know if there are any issues.