Overload of factory methods and constructors in Encoders and Streams, to allow specifying a concrete BufferRecycler instance, as an alternative to the default ThreadLocal soft-references policy.

The change does not break compatibility with existing API, but adds flexibility for resource-eficiency if used from pools (different threads could reuse the same BufferRecycler instances, avoiding the creation of instances on a per Thread basis) and some minor performance gain in preexistent LZFOutputStream constructors (because ThreadLocal is only accessed once).