Migrate towards customisable channel authorization strategies

Opening an early pull request for my work on extracting our current, hardcoded HTTP-based channel auth strategy into a customisable strategy system, that lets users of the library implement channel authorization however they like (e.g. HTTP using a library of their own choice, not using HTTP at all etc.).

/cc @mloughran @aschuch