adjust rest of program accordingly
this should
a) factor casts out of checked operations and put them in safe_base_operations
b) simplify interval which will not explicitly check for overflows etc.
First milestone - make test_add_native pass all addition tests.
Turns out that these changes should also better position us to handle other underlying types - but we're not there yet.
Added example for composition with other types - example boost rational and boost multi precision
Added performance test using boost multi precision
Many other small corrections
Making way for checked_float, checked_money, etc
a) factoring checked into checked_integer etc.
b) moved some tests from test_z to official tests
c) added test_rational which tests interoperability with boost::rational
d) moved safe_range to safe_integer_range