use uuid for server level messageId

@mcollina Please review this fix #172.

`messageId` created in `server.js` is not the message id in MQTT packet. So, basically, any unique id is applicable. We can just create it with `uuid()`. 

`server.nextDedupId` influences one more place:
https://github.com/mcollina/mosca/blob/master/lib/client.js#L198
https://github.com/mcollina/mosca/blob/master/lib/client.js#L246-249
This block of code seems to avoid resending same live packet again. Since `_dedupId` is not persistent field, I suppose it is OK to use `server.nextDedupId` to get incremental number.

Closes #172.

Here is the problem, if it's not a full UUID is not unique. Plus, you do not get many combinations and in high-throughput that can collide easily.

I know that it takes more space and slow things down, I'm trying to figure out some solution.

How about using https://www.npmjs.org/package/shortid?