Add UTF-8 encoding comment
Add some tests for Runnable stuff
Add documentation for types
Move Base#compose into Runnable
Document types for Runnable#compose

Yeah, I know it's private. But it's nice to have the types available.
Move Interrupt error merging into Runnable.run
Move Runnable.run logic into Runnable#run