Clean up dependencies among source files
Rename Proxy to MockProxy (since there are now other Proxy types as well)
Create an Implementation for each method call via proxy
Add created Implementations to an ImplementationGroup
Fulfillment tracks both requirements and implementations
Fulfillment compares individual requirements with implementations
Use Interface to store global requirement and implementation collections
Generalize requirement/implementation terminology to 'interaction'
Combine Requirement and Implementation into single Interaction class
Combine RequirementGroup and ImplementationGroup into InteractionGroup
Combine 'matches?' and 'implemented_by?' into 'fully_described_by?'
Slight refactor of interaction comparison logic
Add specification checking to interface comparison logic
Pull out Interaction#arguments into ArgumentSpecification
Generalize RequirementView as InteractionView
Pull out Interaction#return_value into ReturnSpecification
Create individual Specifications at the proxy level
Pass a new Interface to each proxy instead of just an interface_name
Proxies add implementations via the interface
Simplify collection management in Interface