Refactor, dogpile support

    Added dogpile support
    Refactored throughout so that new search engines can be added with minimal change of the core code.
    Explicit XML output with filename (-o X parameters)
    Explicit HTML output with filename (-o H parameters)
    HTML/XML now include more data
    Shodan search returns the time the data was updated. This is especially useful when it returns multiple results for the same host/port that were scanned several time.
    Fixed some bugs/irregularities in the DNS Lookup
    Exalead and Yandex are faulty and have been commented out (see engine_list in theharvester.py)
    Improved LinkedIn support - pulls more back without sacrificing accuracy. Note that some 'none people' links come back as well, but that was an issue with the original.
    Handles non-ASCII characters correctly, and therefore writes valid XML using lxml.