Rebar3 support and code sharing

Technically, yes, we could add like a function `rlx_utils:create_and_add_provider` that takes State and the list of tuples. But I think this is clearer as is and makes clear you can do anything you want here, not simply create and add a provider.

Though I have considered the ability to have `init/1` return `{ok, State, Provider}` and having `providers` module add it to `State` but that isn't as simple since it requires creating a uniformed API for any project that uses `providers`. I may do that with a behaviour eventually.