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.

Each `messageId` allocated by `server` is used in persistent list-key and packet-key. Taking Redis as example, it is `packets:{client_id}:{message_id}`. Since each `messageId` is actually used combined with `client_id`, 8-char random string should be enough.

If taking full UUIDs, the storage would burst and unnecessary.