[Fixes #8] refactor shipper construction to splat varargs properly

this commit is driven by the change in build_shipper() from

    return get_shipper(name)(ship_args, **kwargs)

to

    return get_shipper(name)(*ship_args, **kwargs)

ie, by splatting the args properly, we end up with a more uniform
interface.

In order to ensure that users continue to receive notification when they
use bogus keyword arguments when constructing shippers, I added
functionality in RedisShipper's constructor to reject unexpected keys.