Mining algorithm negotiation
I have plan to extend stratum protocol to make possible algorithm negotiation between miner and pool/proxy. [Current working draft](https://github.com/xmrig/xmrig-proxy/blob/dev/doc/STRATUM_EXT.md#mining-algorithm-negotiation). Any feedback welcome.

### Checklist
#### Wave 1

- [x] [1.1. Miner defined algorithms list](https://github.com/xmrig/xmrig-proxy/blob/dev/doc/STRATUM_EXT.md#11-miner-defined-algorithms-list)
    - [x] CPU miner.
    - [x] proxy.
- [x] [1.2. Extended job object](https://github.com/xmrig/xmrig-proxy/blob/dev/doc/STRATUM_EXT.md#12-extended-job-object)
    - [x] CPU miner.
    - [x] proxy.
- [x] [1.3. Algo extension](https://github.com/xmrig/xmrig-proxy/blob/dev/doc/STRATUM_EXT.md#13-algo-extension)
    - [x] CPU miner.
    - [x] proxy.
- [x] IPBC coin support
    - [x] CPU miner.
- [x] Stellite (XTL) coin support
    - [x] CPU miner.    

#### Wave 2
- [x] 1.1. Miner defined algorithms list
   - [x] AMD miner.
   - [x] NVIDIA miner.
- [x] 1.2. Extended job object
   - [x] AMD miner.
   - [x] NVIDIA miner.
- [x] 1.3. Algo extension
   - [x] AMD miner.
   - [x] NVIDIA miner.
- [x] IPBC coin support
   - [x] AMD miner.
   - [x] NVIDIA miner.
- [x] Stellite (XTL) coin support
   - [x] AMD miner.
   - [x] NVIDIA miner.

#### Wave 3
- [x] Per algorithm threads settings.
- [ ] Multi algorithm mode in proxy (router).