Cleanup, compat fixes, caching

Barrage.fromString can now optionally cache the result.