Better error for invalid custom components

When motion.create() wraps a custom component whose ref doesn't point to a DOM element, it now throws a clear, actionable error message instead of a cryptic internal error. This prevents animations from silently breaking across the entire page.