Add a Fixed(u8) constructor to Colour, which represents the 256 colours
that some terminals support. This means we can:
- stop using black bold to mean grey, which looks weird on terminals
that haven't been set up to use it;
- support a *lot* more file type colours.
I'm a little suspicious of how much string allocation is being done in
colours.rs, but that's a problem for another time.
This involves putting the entire output into a table before anything
is actually printed, in order to determine what the width of each
column should be. This should make it appear to output slower, as the
first line can only be printed after every file has been examined, but
it's still fast to me.
Also, reverse the way columns are rendered: before, a column took a stat and a name to render; now, a file takes a column type to render. This means that most of the File data/methods can be private.