Changed public interface tests to use #assert_respond_to.
This will improve the accuracy of potential error messages.
Divided #add_rule tests into separate good and bad tests.
Also added unit tests that verify rule id format.
Added unit tests for #get_rule with an invalid id.
Also overrode Kernel#puts to suppress output from RubyDNS.