Fix returning an API Key that was size + 1.

When trying to create a new channel using PostgreSQL as a database I was getting a database error that api_key's value was too long for type character varying(16).

Looking into the code I found that  generate_api_key has an instance of 0..size which iterates through size + 1 elements. So asking for an API Key that was 16 characters long was actually returning a string of 17 characters. This broke trying to shove it into a varchar(16) in PostgreSQL.

This patch ensures that only size characters are returned.