bindings: make Dataterator match/flags optional

Also document the solvable.Dataiterator method.
bindings: don't let str(Datamatch) change the strings, instead create a copy

Also always set the SEARCH_FILES and SEARCH_CHECKSUMS flags.