initial skin system design. horribly inefficient at the moment.

- `-Y` option is added for setting the path to skin files.
- BmsMessage is no longer an enum.
- ui::selecting is experimentally converted to the skin system.