integrate btdigg search api (issue #198)

initial btdigg implementation (issue #198)
* depends on frostwire-common search-engines branch ([PR #7](https://github.com/frostwire/frostwire-common/pull/7))
* sends GET request to api.btdigg.org and decodes response
* de-serializes JSON response and passes objects to GUI
* displays search results in the GUI
* added documentation for the call chain initiated by search queries
* added some simple GUI acceptance tests

NOTES:
* this feature appears to be working well but is not quite completed and many breadcrumbs left behind but i offer PR for evaluation and critique
* results were hidden because a valid filename extension is required
    for a proper result but this is not enforced and so was not obvious
    the source of this bug took some digging to uncover and resulted in the callchain document included 
    the BtDigg results do not contain any filenames only magnet links so this was kludged for now

TODO:
* implement paged queries (capped at 10 results for now)
* assert valid file extension for result or at least print something to console
    indicating that the filetype of this result is unsupported 
    but is for some reason deemed acceptable although it will be inaccesible
* add '.magnet' filetype or extension to '.torrent' filetype
    adding .magnet filetype to the .torrent schema should be trivial - the only reason ive come across for a distinct .magnet filetype would be so that it could sport a different icon
* connect details page (if it is not yet working) and add string for tooltip? in SearchMediator.java like:
    static final String ARCHIVEORG_DETAILS_STRING = I18n.tr("View in Archive.org");
* figure out what is a Crawlable to ensure this is the proper *SearchPreformer class for JSON API paged queries
* dry out AbstractTorrentSearchResult sublasses and move AbstractTorrentSearchResult to outer dir

I wonder if it's better to put these documents on the FrostWire Github wiki.