Object initialization

Different approach when setting up the mock. It now figures out which
properties to mock on forehand so you don't get any errors on missing
properties right away.
New version. Made some changes to the interface.

More clean notation, automatically mocks properties, supports promises
and other tweaks.