Mostly purge wxWidgets from non-UI stuff

Use boost::filesystem::path for all paths, and std::string for all other
strings, converting to/from wxString as close to the actual uses of wx
as possible.

Replace most of the uses of non-UI wxWidgets functionality with either
the equivalent libraries from boost, or (in a few cases), custom
replacements in libaegisub.

This touches pretty close to every file in Aegisub and is a pretty
radical change, so there's probably a lot of broken stuff.
Use AssTime's formatting for DialogVideoDetails
Use boost.rational for AR normalization
Use an enum for the predefined aspect ratio types
Extract some duplicated wxFileSelector code to a helper function
Make agi::util::time_log less insane
Make log messages a little saner
Write log files incrementally so that they actually exist for crashes
Use a circular buffer to store only the last 250 log messages
Don't add a hardcoded path that's unlikely to actually exist to the include path on OS X
Remove support for saving to memory with CSRI since there aren't actually any non-VSFilter renderers
Use boost.gil for overlaying images from libass
Factor out some duplicated code in the color picker slider generation
Do logging on a background thread

Makes logging actually thread-safe and slightly improves performance.
Remove AssFile::loaded since it isn't actually used for anything
Extract Loading/Saving/Undo stuff from AssFile

Add SubsController, which deals with things like what subtitle file is
currently open, rather than the contents of the current subtitle file.
Move the rest of the relevant logic from FrameMain there in addition to
all of the stuff from AssFile.
Give all of the Aegisub-created threads names
Use std::atomic in a few places
Add ICU to the libraries downloaded by the dependencies fetcher
Build ICU on Windows