refactor: Extract add/remove_subscriptions_schema.
refactor: Extract add/remove_subscriptions_schema.

Now we are consistent about validating color/description.

Ideally we wouldn't need to validate the
`streams_raw` parameters multiple times per
request, but the outer function here changes
the error messages to explicitly reference
the "delete" and "add" request variables.

And for the situation where the user-supplied
parameters are correct, the performance penalty
for checking them twice is extremely negligible.

So it's probably fine for now to just make sure
we use the same validators in all the relevant
places.

There's probably some deeper refactor that we
can do to eliminate the whole `compose_views`
scheme.  And it's also not entirely clear to
me that we really need to support the update
endpoint.  But that's all out of the scope of
this commit.

synicalsyntax/zulip,kou/zulip,brainwane/zulip,punchagan/zulip,eeshangarg/zulip,timabbott/zulip,punchagan/zulip,eeshangarg/zulip,rht/zulip,eeshangarg/zulip,eeshangarg/zulip,kou/zulip,zulip/zulip,showell/zulip,zulip/zulip,showell/zulip,andersk/zulip,showell/zulip,hackerkid/zulip,showell/zulip,eeshangarg/zulip,synicalsyntax/zulip,andersk/zulip,brainwane/zulip,timabbott/zulip,showell/zulip,punchagan/zulip,eeshangarg/zulip,hackerkid/zulip,brainwane/zulip,brainwane/zulip,hackerkid/zulip,timabbott/zulip,synicalsyntax/zulip,rht/zulip,rht/zulip,punchagan/zulip,timabbott/zulip,punchagan/zulip,synicalsyntax/zulip,kou/zulip,showell/zulip,hackerkid/zulip,zulip/zulip,timabbott/zulip,rht/zulip,timabbott/zulip,andersk/zulip,showell/zulip,kou/zulip,rht/zulip,kou/zulip,zulip/zulip,eeshangarg/zulip,andersk/zulip,hackerkid/zulip,brainwane/zulip,hackerkid/zulip,timabbott/zulip,punchagan/zulip,zulip/zulip,rht/zulip,hackerkid/zulip,brainwane/zulip,zulip/zulip,zulip/zulip,kou/zulip,synicalsyntax/zulip,brainwane/zulip,synicalsyntax/zulip,synicalsyntax/zulip,andersk/zulip,punchagan/zulip,rht/zulip,kou/zulip,andersk/zulip,andersk/zulip