Use capability-enabled ids

Now we can use capabilities as envisioned: take a WriteReadStore id and
you can distribute your changes, or take a ReadStore id and you can only
receive.