Significant improvements to API

This PR makes some breaking changes to the API. When it is accepted we should issue a major point release and announce that it is not compatible with the previous release.

- CodecBin1 is deleted. It has not been maintained for a long time and should be removed.
- Reduce visibility of constructors to private. Added getter methods to retrieve singletons. The Codec classes are all stateless and immutable. We should stop the users from creating instances of these objects.
- Eliminate the return type from ConcurrentCodable#encodeLock(). The return type was from a time when we were willing to sacrifice data integrity to avoid deadlock. Deadlock is never acceptable. When it is found the underlying bug must be corrected.