Enhance core.StringEncoder and rename it to core.StringCoder
Add tests for core.StringCoder
Mark core.Sha1 as implementing Encoder