testing changes, intro to profiling

added a control structure to runtest so I have more control
switched to using is_deeply rather than Dumper for some tests
using die if you give a crap d() parameter
using Test::Exception to test new d()