Changed savegame API so that assets do not need to know their own identifier.
This also fixes GitHub issue #4.

The save() method on assets now does not get an object
on which it should save its data under a unique ID. Instead,
the method is expected to return a newly created object.

The restore() method still has an object as its first parameter.
This object is only meant to be used by this asset, so
specifying a unique ID and using it to retrieve values from the
object is no longer necessary, since the object holds the
asset's saved data directly.