Events.

Mainly implements events.
You can set up a callback std::function that is called every time the object change states.
Also changed the getFileSizeString method to support more sizeprefixes (Up to YB)
UI default parameters (colors) were moved outside of core.

[spoiler]
For some reason the oldstate argument maybe uninitialized, and the old state may also be unrelated to a previous new state and sometimes, libtorrent changes the state a few times at once, but that's a libtorrent issue.
For example, in a call, you may have
oldstate = 31231, new state = 7

or in two consecutive calls
oldstate = 0 new state = 4
oldstate = 0 new state = 5

And most of the time it's a mix of these two.
[/spoiler]