Bot.Errors channel has been introduced. It can be used to
debug Telebot. It also fixes sendFile() which used to upload
with its own custom http.Client instead of http.DefaultClient.
These changes make it possible to set custom options when responding to
inline queries, as described on
https://core.telegram.org/bots/api#answerinlinequery.
It also includes all the (non-cached) inline result types as described
at https://core.telegram.org/bots/api#inlinequeryresult.
Some remarks:
* The internals of sendCommand have changed. It now expects a
JSON-serializable object. Instead of doing GET requests with
URL-encoded query parameters it now POSTS JSON directly.
* Because of the above, sendFile() has changed as well. It now expects a
* `map[string]string` which it will internally convert to URL encoded
form values.
* Respond has been deprecated in favor of the new AnswerInlineQuery
function. It is only kept for backward compatibility.
* A dependency on https://github.com/mitchellh/hashstructure has been
introduced in order to generate automatic IDs for inline results.
* Chage signature of "Destination()", because we need send username in "chat_id" when
sending message to channel.
* By telegram API document, chat id is "not exceeding 1e13 by absolute value" which
needs int64 to store it.
in bad network-speed environment. And message will be put to channel in
same order we receive from API call.
* Bot.Listen(): Use only 1 goroutine. Do really long polling, not
repeatly do short polling.
* API.go: getUpdates(): as doing long polling, channel is not required.