This should finish AFIO, apart from minor items and Paul's stuff

Note that the unit tests fail on older compilers. This is due to Boost trunk being currently quite segfaulty :)