charm: refactor URL vs Reference

This is a breaking change, so move package path to charm.v3.
Like it how new error handling is much simpler now.