Updated the header comments.
Fixed the module names.
Focus on the packed binary implementation

- Removed the BCD implementation
- Cleaned up some of the comments
Simplified the definition of DataUnit.
Replaced all remaining BigIntPB with BigInt.
Change to use Unicode strings
Detail the import design for BigInt

The import process will take a base-10 number-string and first
convert it to a packed BCD base-10 string. Then this representation
is used to convert the base-10 value into a base-2 packed-binary
representation.
Implement BCD.odd
Implement BCD.reduced
Improved the header comment
Fixed an error in the commnent's sample
Should only allocate when the contract is used
Simply use ulong right now to keep things simple
Rearranged the algorithm to convert a number string to packed binary
Explain the layout used for BCD.data
Added constraints to alpha and beta in BCD

beta will be used to keep track of the position of the lower digit
of the quotient when halve is being used to divide the number by two.
alpha will be used to keep track of the posiiton of the upper digit
of the divident accross successive calls to halve.
Get the usage of quotient and dividend correct
Improve the comment explaining how BCD works

- Added the alpha and beta index values into the explanation.
- Replaced the old usage of the Bits structure with BigInt.data
  as the accumulation sink.
- Show the fact that array bits outside of the relevant nibbles
  delineated by alpha and beta are DONT-CARE blocks by using 'x'
  characters instead of '0'. There is no need to waste writing to
  the DC blocks.
Add a note about the dont-care memory blocks
First step to rename BigInt to Integer