Merge branch 'Halfwake-master'
add tests
add contracts to converters, remove redundant checking, add contract predicates, change provide to exclude contract predicates from being provided, make hex-> case-insensitive but ->hex always return strings with downcase letters, make negative and fraction (non-whole-number) values impossible to give or receive for all functions