DarkFenX/Pyfa — pull request #155 by blitzmann (2014-08-18 04:08:30+00:00)
Title: Network service, other things - Resolves #135

This pull requests implements a new network service, in which all networking requests go through. This allows us to consolidate all requests, as well as turn off networking completely or individual type of requests, and apply a proxy if needed. To get this to work, a few things had to be moved around.

*Note:* All network requests have to be `https://` to work with the proxy. I was too lazy to check for and switch based on protocol. This shouldn't be too difficult if needed later.

* Network service
* Types of requests are declared here (type is required when calling a request), and via bitwise operators the bits for types are checked, set, and unset depending on settings in preferences.
* Proxy settings are applied here.
* `eveapi` has been moved to service layer from EOS and calls have been removed from EOS. Additionally it has been modified a bit to use pyfa's network request service rather than it's own network calls. While doing this, also modified `characterEditor` to actually show why an API call failed.
* Price service
* Price fetching has moved from EOS to service layer to facilitate use of new Network service.
* Price fetching logic has been greatly simplified:
* c0rporation.com support removed due to (a) faction items being market listed since 2012, and (b) the simple fact that it's now defunct)
* eve-central is the sole price source. Because of this, a lot of logic was removed that supported multiple price sources.
* Removed concept of "area" for prices - if it's not in Jita, it's not important.
* `time` attribute of `Price` objected used to represent the time that the request was made. During the price fetching, this time was checked against the current time + modifier to determine if price needed to be updated. To simplify validity checks and general logic, the `time` attribute now represents the time that the price should be updated by setting it to `currentTime + MODIFIER`.
* Also sets a new modifier for a network timeout, which resolves #35.