* **Feature** - Add `--accept` and `--exclude` options in microengine to filter based on bounty metadata
* **Feature** - Add helper function `AbstractAmbassador.generate_metadata()` to make adding metadata easy.
* **Feature** - Handle changes to bounty in contracts (additional metadata)
Breaking Changes
1. `AbstractMicroengine.connect()` passes `accept` and `except` as kwargs to Microengine objects. Suggest add `**kwargs` to `__init__()` definition and `super().__init__()`
1. `AbstractMicroengine.fetch_and_scan_all()` parameters changed to `(self, guid, artifact_type, uri, duration, metadata, chain)`
1. `AbstractMicroengine.scan()` parameters changed to `(self, guid, artifact_type, content, metadata, chain)`
1. `AbstractArbiter.fetch_and_scan_all()` parameters changed to `(self, guid, artifact_type, uri, vote_round_end, metadata, chain)`
1. `AbstractArbiter.scan()` parameters changed to `(self, guid, artifact_type, content, metadata, chain)`
1. `AbstractScanner.scan()` parameters changed to `(self, guid, artifact_type, content, metadata, chain)`
1. `OnNewBountyCallback.run()` parameters changed to `(guid, artifact_type, author, amount, uri, expiration, metadata, block_number, txhash, chain)`
1. `AbstractAmbassador.on_after_bounty_posted()` parameters changed to `(self, guid, artifact_type, amount, ipfs_uri, expiration, chain, metadata=None)`
1. `AbstractAmbassador.on_bounty_post_failed()` parameters changed to `(self, artifact_type, amount, ipfs_uri, duration, chain, metadata=None)`
1. `AbstractAmbassador.on_before_bounty_posted()` parameters changed to `(self, artifact_type, amount, ipfs_uri, duration, chain, metadata=None)`