Update SinonJS definitions

Restructured definitions to existing standards and more closely mirrors actual JavaScript implementation.

Names better reflect data types.