Added ButtonObject + more

Restructuring of internal object methods to simplify builtin actions.
Removed OnCreate(), you can just use a no-argument constructor now.
Added Width, Height and BuiltinSpriteIndex to PhysicalObject.

ButtonObject does not work currently due to there not being MouseX and
MouseY based on the relative position. I'm working on it.