Dedicated function for mixins; chain doesn't add properties.

There is now a dedicated function for performing mixins; this separates out some of the logic from chain. Extra tests have been added to verify the fact that the mixin calls the original function. Mixins are independent of their source function.

Sinon added for testing.