Re-define test mod names to remove the 'test_' prefix
Remove anonymous impls on types and transfer functionality to traits

Unfortunately this causes Rust's type inference to struggle, but this is a problem with the rust compiler and hopefully this will improve over time. Users are encouraged to use the type aliases and static method wrappers included with each module.
Remove whitespace