asset: Don't init the asset object until it succeeds

Previously the asset object would be created and if it failed to load
a necessary resource it would just directly free the asset object and
ignore the ref-counting. This messes up the ref-count debugging
because the tracking isn't informed that the object is destroyed. This
patch makes it delay initialising the RutObject until it knows the
asset has succesfully loaded.