Further cleanup, and a benchmark test

I never actually did benchmark testing before so let me know if this is even correct.
If the benchmark I wrote is correct, my first attempt actually slowed it down (so good that you mentioned this), so I cleaned up a few things, changed an if call around, and it increased for sure.  Here is the output from my benchmark tests.  the benchmark was to test `encode` and `can_encode?`  `5,000 times` with the value `!\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ§¿abcdefghijklmnopqrstuvwxyzäöñüà^{}\[~]|€`


* before-pr-3: this is the code before my merge
* master: code as it is on master now
* refactor-further: code in this pull request

```
Switched to branch 'before-pr-3'
Rehearsal ------------------------------------------------
encode:        8.500000   0.010000   8.510000 (  8.500092)
can_encode?:   2.860000   0.000000   2.860000 (  2.868009)
-------------------------------------- total: 11.370000sec

                   user     system      total        real
encode:        8.380000   0.000000   8.380000 (  8.386573)
can_encode?:   2.900000   0.000000   2.900000 (  2.900623)

Switched to branch 'master'
Rehearsal ------------------------------------------------
encode:       10.160000   0.000000  10.160000 ( 10.168087)
can_encode?:   4.280000   0.010000   4.290000 (  4.276853)
-------------------------------------- total: 14.450000sec

                   user     system      total        real
encode:       10.270000   0.000000  10.270000 ( 10.271992)
can_encode?:   4.300000   0.000000   4.300000 (  4.305207)

Switched to branch 'refactor-further'
Rehearsal ------------------------------------------------
encode:        1.890000   0.000000   1.890000 (  1.892791)
can_encode?:   1.960000   0.000000   1.960000 (  1.966089)
--------------------------------------- total: 3.850000sec

                   user     system      total        real
encode:        1.880000   0.010000   1.890000 (  1.882066)
can_encode?:   1.970000   0.000000   1.970000 (  1.974797)