Raise friendly error for non-map message in Channel functions

Closes https://github.com/phoenixframework/phoenix/issues/263

Please let me know if I should make any changes. :smile:
let's flip this and use `is_map` with catch-all clauses that raise