Add new select syntax

Select can now accept `*args` and will throw for a combination of a list and `*args` as discussed in #22
I would rather a TypeError with a meaningful message. I'm also fine with another error type if you think one suits it better.