Add Boost as a submodule and add some minor cleanups using Boost.Range

I created a minimal fork of Boost at https://github.com/citra-emu/ext-boost . The readme in that repository lists the currently imported libraries (roughly 14 MB of those, mostly due to the required mpl dependency, which spans 6 MB).

I didn't really feel like going through the code to clean up everything because that always introduces a risk of regressions, and it's not really too important anyway: At least I can now use and encourage usage of boost.range, which is great :) 

If this PR gets merged, I'll work on creating some guidelines. Most importantly, usage should for now be restricted to the ranges library.