Correctly set port and scheme when behind proxy.

<h4> Pushmanager now forms its URLs with information from any proxy it might be behind. </h4>

For pushmanager to do this, the proxy must forward its port and scheme via HTTP headers. Pushmanager uses the `X-Forwarded-Port` and `X-Forwarded-Proto` headers for this. 
* If the `X-Forwarded-Port` is set, then it will override the default of `Settings['main-app']['port']`. 
* If the `X-Forwarded-Proto` is set, then it will override the default of `https`.

For nginx, add these to `http`, `server`, or `location` blocks:
```
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
```

For apache2, can add these (or write logic to determine port & protocol):
```
RequestHeader set X-Forwarded-Port 443
Requestheader set X-Forwarded-Proto "http"
```
Tests added.