bakery: implement CheckAny

Factor CheckAny out from httpbakery.Check. There's no
new behaviour here.

Also (and trivial) rewrite []*macaroon.Macaroon to macaroon.Slice throughout
and change the argument order of httpbakery.Check.

I'm not sure in this case. New types help when they actually have some associated semantics (and thus the possibility of useful methods), but they can also hinder, because they're incompatible with other named types with the same underlying type. In this case, this really is just a bundle of attributes and values, and the canonical way to declare that in Go is map[string] string. That means that the attributes are assignment-compatible with DeclaredChecker, for example, which they would not be if they were named.

I'd prefer to leave as is, at least for the time being.