Couple of performance tweaks and some additional functionality.

* Removed "lazy" everywhere it was used, it's more than likely going to limit performance.
* Changed concat to be oriented around List rather than Stream which gave about a 15% performance bump.
* Added toArray and another toString method that takes a Charset, also moved the UTF-8 Charset instance so that it's only allocated once.
* Made ByteString.empty a val rather than a def.
* The test for replicate creates a List rather than a Stream, which seems to have improved the running time of that test.