Rewrite terminal core in Go

WFM!

Letting Ruby handle Emoji for now. This imparts an approximately 2x performance penalty on large sets .. but it's still miles ahead of the Ruby impl. Original acceptance tests have been ported from Ruby to Go, and I've added a couple of additional ones for correctness of multibyte handling.

Benches:
```
     npm.sh.raw ruby        0.8 (±0.0%) i/s -          4 in   5.183151s
          npm.sh.raw        4.5 (±0.0%) i/s -         23 in   5.071450s
    npm.sh.raw gocmd        9.0 (±0.0%) i/s -         46 in   5.092831s
     npm.sh.raw http       10.3 (±9.7%) i/s -         52 in   5.072454s
```