Empty multibindings

The binding for Vec<T> and HashMap<K,V> is automatically generated when #[into_vec] or #[into_map] is encountered. However when such binding does not exist and someone depended on the collection, Lockjaw cannot be sure if it should provide an empty collection since it should be a multibinding, or if the user forgot to bind the collection.

This usually happens when a library defines a multibinding for events, etc., but does not bind anything to it itself, and clients aren't forced to use the event.

A #[multibinds] method that returns the collection type should be declared in such case, to let Lockjaw know a multibinding collection is intended, but it may be empty.

#[module]
impl MyModule {
    #[multibinds]
    fn vec_string() -> Vec<String> {}

    #[multibinds]
    #[qualified(Q)]
    fn q_vec_string() -> Vec<String> {}

    #[multibinds]
    fn map_string_string() -> HashMap<String, String> {}

    #[multibinds]
    #[qualified(Q)]
    fn q_map_string_string() -> HashMap<String, String> {}
}

#[multibinds] also serves as documentation on the #[module] specifying it is expecting the multibinding.