Added
- `print.group` and `print.endgroup` to create indentation levels
- foreground colors
- `print.red('foo')`
- `print.green('foo')`
- `print.blue('foo')`
- `print.yellow('foo')`
- `print.magenta('foo')`
- `print.cyan('foo')`
- `print.rgb(r, g, b)('foo')`
- background colors
- `print.on_red('foo')`
- `print.on_green('foo')`
- `print.on_blue('foo')`
- `print.on_yellow('foo')`
- `print.on_magenta('foo')`
- `print.on_cyan('foo')`
- `print.on_rgb(r, g, b)('foo')`
- text styles
- `print.bold('foo')`
- `print.italic('foo')`
- `print.underline('foo')`
- Also chainable! `print.red.bold.italic('error')`
- `eprint` to simplify printing to STDERR