Fix random color selection.

`random.choice(palette)` expressions failed with an `AttributeError` for missing both `__len__` and `__getitem__`. These methods have been added to the `Theme` class, allowing random selection to succeed.