Improve MacAddr ergonomics
Improve MacAddr ergonomics

* Make it Ord, so it can be used as a part of a key in
  BTreeMap/BTreeSet, or sorted.
* Make the ParseMacAddrErr actually an error, which makes it easier to
  integrate with things like error chain or failure.
* Removed a FIXME comment suggesting to use () instead of an error:
  - It is recommended never to use () as an error, but always at least
    provide empty struct (and implement Error on that), for ergonomics,
    type separation and clearer meaning.
  - There are use cases where MAC addresses come from eg. a
    configuration file, so it makes sense to do proper error handling
    around it, not only a programmer errors as the comment suggested.

libpnet/libpnet,mrmonday/libpnet,mrmonday/libpnet,mrmonday/libpnet,libpnet/libpnet,libpnet/libpnet,mrmonday/libpnet,libpnet/libpnet