core: fix subclassing Loop

When Loop was subclassed, Subclass.default_loop() still returned a Loop
instance, even if it wasn't created before. This patch fixes that.

The avid readed may have noticed that this patch also removes the atexit
handler which decref'd the default loop. Upon reading the documentation,
it turns out is not safe to use any Python APIs at that stage, we just
never got bitten by it until now, by chance.