Preserve DNS qtype and qclass of recursive requests. #33

Pymads objects take requests or strings.
Abstract out base class for Source. Take only request object in get()
Fix some tests.

- Use get_domain_string instead of get for mdns and chain
- Make Chain a subclass of Source so it can have get_domain_string
- Add missing import statement in source.py
Update CacheFilter to take request objects instead of strings
Be more specific about qtype for some dig tests
Merge pull request #35 from clehner/master

Retain qtype and qclass in recursive requests