NOTE: node-object-hash seems to be the much more efficient library. But it's based on Node's crypto module which is not supported in browser (so we have map crypto module to crypto-browserify or crypto-js). If this object-hashing becomes the performance bottle-neck, we should think about adopting this hashing library See https://www.npmjs.com/package/node-object-hash