More concise (and faster) implementation of Hamster::Tuple

The title says it all.

I suspect that a lot of experienced Ruby programmers don't know this trick. When you subclass a core Ruby class like Array/Hash/String, the Ruby runtime will use the exact same (efficient) data representation "under the hood" for your subclass as it does for the built-in class. Additionally, built-in methods which have a special-cased "fast path" when passed an Array, etc. will generally use the fast path for your subclass as well.
To clarify further: in this implementation, the array here called `items` is just an ephemeral object used for initialization (actually used to package up varargs passed to the constructor). It is passed to `Array.new` to initialize the Tuple (`ri` can give you more information on `Array.new`). After that, no reference to it is retained, and it will be garbage-collected. It could be frozen, but that would not serve any purpose.