Remove external dependency on afterEach, mix bond api into returned spy object, test coverage for changes

- Add #restore method to bond api to allow for manual spy restoration
- Add check for afterEach before calling it when creating spies
- Mix bond api into spies returned via #through and #return
- Add bond.version to check for version number