Force the 'extends' arg of def_class() to be a BuiltinClass

(code harmonisation)
Force 'implements' arg to be a list of BuiltinClass
Clean definitions of app-level exception classes
Move SPL interfaces to hippy.module.spl.interface
Local methods should appear before inherited ones in the methods dict

Also, an interface can only extend another, not implement it.
Compute custom_instance_class before anything else

The rest of class initialisation depends on it.
Kill unused attribute
Merge pull request #59 from hippyvm/class-cleanup

Class cleanup