Added `encoder`.  Fixes #13

The main purpose of this is to make it clearer to people using the API that
`for cat encode` is the idiomatic way to encode things.  As a bonus, users will
get shortcut fusion for free.