Change error type from String to scodec.Err

By using an open-for-extension type as the error type, codecs
are free to return domain specific errors and clients of such
codecs can then dispatch based on the error type received.
Merge branch 'topic/dispatchable-errs'

Conflicts:
	src/test/scala/scodec/CodecTest.scala