internal/router: implement PUT for meta endpoints

This also adds the notion of a multi-error, adding a new field to the Error
type.
We are starting to have lots of methods with similar names.
Some docstrings or an overview at the beginning of the module could help understanding what's going on when looking at the code in the future.