Have Gaku::Config not rescue ConfigError

If the exception is a ConfigError already, it means Gaku::Config itself
raised it. Let's not destroy its error message.
Move chatter into its own class
Handle unexpected death

Print error message and die instead of barfing up a stack trace.
Make Gaku::Config instance global for easy access
Add new config keys monochrome and utf8
Prepare for coloured output
Wrap output using Gaku::Canvas for better control

- Canvas knows whether or not it supports UTF-8
- Canvas knows whether or not it supports colour
- Some convenience methods for printing coloured text
Wrap input using Gaku::Input for better control
Trap SIGINT instead of rescuing Interrupt

Feels like the better solution.
Start using Gaku::Options for argument handling
Wrap card hash in Gaku::Card for easier handling
Prefer #length over block-less #count
Make Gaku::Deck aware of its modified-state
Move deck handling and quiz logic to Gaku::Croupier

It makes more sense to have Croupier handle everything deck-related that
Deck itself does not handle.

- Make Croupier responsible for finding the right deck given deck name.

- Let CLI keep the quiz method, but have it interface with Croupier.

- New flow, in short:
    1. CLI calls Croupier#card for a new card, asks user for answer.
    2. CLI calls Croupier#answer(answer) with answer from user.
    3. Croupier#answer(answer) writes card data.
    4. Croupier#answer(answer) determines how to move the card.
    5. Croupier#answer(answer) has Deck move card and saves deck to disk.
    6. Croupier#answer(answer) returns boolean stating if answer was correct.
    7. CLI handles return value from Croupier#answer(answer).
Add Gaku::BarChart for fancy bar chart stats
Implement -s (--stats) option
Tell user when all cards are known
Add example deck: Swedish table of elements