clz should return 32 when value is 0x100000000 (all 32 lower bits are 0) or 0.1

Change line in implementation of clz function, which performs ToUInt32 operation,
it should be 'number >>> 3'.
Add additional tests for clz function.
clz function should throw exception on non-Number values
Merge pull request #196 from outcoldman/fix_clz

clz should return 0 when value is 0x100000000 (all lower 32 bits are 0) or 0.1 (any number between 0 and 1)