Add BDD tests for production by agens

Add two types of tests:
- testing for simple production (one input, one output)
- testing for multi-input and single output

Add tests for fining workers that do not work in a turn
Fix failing test for agent
Add Farmer as production unit
Change fields in Agent

- Removed money, this is handled through coins in inventory
- Added name and if None, use repr
- Fixed broken test
Make farmers produce food from wood

- Update steps
- Fixed scenario outlines (damn capital letters)
- Add production mechanics for farmer
- Also added unit tests
Add miner

A miner creates ore from food
Refactor worker subclasses to strategy pattern

Each agent now gets a production method assigned based on its
occupation.
Required refactoring of subclasses into strategy pattern. Each strategy
is a production method which is assigned when initializing the agent.
Fixed handling of strategies

Major bug in the handling of the dfferent production strategies. I was
passing in objects to cover the self-parameter, but this was wrong. Now
I use types in the proper way
Add woodcutter

A woodchucker chucks wood and I forget how the rest of that goes…
Add blacksmithing and refining

Also fix several small bugs that cropped up
Merge branch 'commodities_production'
Fix bug with agent without any observed trades

If an agent has no observed trades, then the observed trading range is
set from 0 to 100