component inventory now clears the tag items are saved to before calling their save method, to behave like tile entities when saving (i.e. get a clean tag, so old stuff doesn't have to be deleted manually); reworked recipe registration to add a pre-registration step that's done right in the item instantiation, keeping things in one place (less likely to forget adding recipes)
changed a couple of failure cases to return `nil, message` instead of `false, message`, for consistency