Make FixedBcd useable again

Work still remains to be done to make convertBinaryToBcd more generic
and to get opOpAssign working again.

The straightforward constructor is purposely kept private and limited
to prevent use outside of local unit testing. And also to encourage the
use of the factory function bcd in package.d.

Improved the accuracy of other methods along the way, such as
isPackedBcd.

Also turned the constraint constants into templates. The goal is to
allow multiple integral types to be the payload backing type. This
should be able to expand beyond the built-in integral types with
the design proposed in this commit.