Add new select syntax

Select can now accept `*args` and will throw for a combination of a list and `*args` as discussed in #22
Calling select with no cases should not result in an IndexError. IMO it should just work, like it has.