Added HTTP proxy support

Tested with `173.234.237.198:3128` HTTP proxy and my TCP bootstrap node `192.210.149.121:3389` , `F404ABAA1C99A9D37D61AB54898F56793E1DEF8BD46B1038B9D822E8460FAB67`.
The node should be up, proxy might not.

Apparently it's not that easy to find HTTP proxies that support CONNECT. I had to go over 20 HTTP proxies, getting from no response (timeout), immediate disconnect or some HTML-formatted errors.

Even working HTTP proxies might not connect to a working TCP bootstrap node from the first time, you have to keep trying connecting. Tox doesn't retry to establish connections, so this should be done by clients by bootstraping with some delay until tox is connected.
I have thought of doing the same thing after making the PR. It would also make sense to have a void* to a proxy-type specific struct, because one proxy type might require more information than another, so that we wouldn't have to dump them all directly into Tox_Options. Say SOCKS5 proxy might have an auth method added, while HTTP proxy don't have an auth method by design, so in the future, if anyone decides to add SOCKS5 auth methods, adding proxy_username and proxy_password fields that are used only for SOCKS5 proxy right in the Tox_Options might be undesired. One would have to put comments on them saying: "Oh, and set those only if you are using SOCKS5 proxy". So I propose something along these lines:

```C
typedef enum {
    TOX_PROXY_HTTP,
    TOX_PROXY_SOCKS
} TOX_PROXY_TYPE;

typedef struct {
    uint8_t ipv6enabled;
    uint8_t udp_disabled;
    uint8_t proxy_enabled;
    uint8_t proxy_type; // values from TOX_PROXY_TYPE
    void* proxy; // pointer to proxy-specific struct, since different proxy types might require different information
} Tox_Options;

typedef struct {
    char address[256];
    uint16_t port;
} Tox_Proxy_HTTP;

typedef struct {
    char address[256];
    uint16_t port;
    /* potentially other members, such as:
    uint8_t socks5_auth_type;
    void* auth; pointer to auth structure, since different auth methods require different information
    <something else>
    */
} Tox_Proxy_SOCKS5;
```

The two structs would be identical for now, but would give ability to extend each of proxy types if needed.