Modify OS fingerprint feature to use a fingerprint file

This patch modifies umap to use a fingerprint file for its OS matches instead of them being hard-coded in the python file. It uses json file as a convenient file storage format which is easily parseable in python.

Hopefully the format of the fingerprint file is reasonably self-evident. There are three possible match types: *match-freq* which counts how often a particular message type is in the fingerprint, *match-count* which counts how many messages are in the fingerprint and *match-pos* which checks to see if a particular message is at a particular position. The *match-condition* is the name of any of the inbuilt rich comparison methods documented in the standard python data model. &#95;&#95;lt&#95;&#95;, &#95;&#95;le&#95;&#95;, &#95;&#95;eq&#95;&#95;, &#95;&#95;ne&#95;&#95;, &#95;&#95;gt&#95;&#95; and &#95;&#95;ge&#95;&#95; are the obvious values to put in here.

I also have a huge bundle of other fingerprints to parse. Various cars, Solaris, multiple BSD variants, strange telco equipment and anything else I could find. It would be great to get lots of examples from anyone who has them.