veyron-browser: Adjust service signature hash

The signature hash is currently too general, only appending the
method names in sorted order. In order to improve, this CL adds the
number of input parameters as well.

The goal of this hash is to have:
- a string common to a service that is different from other services
- resilience to most changes to the data encoded in a signature
- resilience to most simple changes to service signatures

The main motivation for this CL is the pool heater and sprinkler.
They currently share the same method names and thus, get the same
recommendations.

This fix is not perfect, but it does improve the situation.
In the future, signatures should be more distinguishable.
- adding type information would help
- adding a vdl interface name (if possible) would be even better

Note: jsonStableStringify is ~10x slower than JSON.stringify but it
does guarantee that properties are printed out in sorted order,
including deep ones.

Change-Id: I540b0052c05644ec0db0d0d365a37d283d1654ee
diff --git a/package.json b/package.json
index f5f1eda..c47d6f6 100644
--- a/package.json
+++ b/package.json
@@ -24,6 +24,7 @@
     "debug": "^1.0.4",
     "guid": "^0.0.12",
     "insert-css": "^0.2.0",
+    "json-stable-stringify": "^1.0.0",
     "localforage": "^1.0.2",
     "mercury": "^6.0.1",
     "routes": "^1.2.0",