boost guid implementation

I divided up the commits into multiple commits. I knew the last request was getting quite unweildy, but I wasn't sure if you preferred bigger commits that bring "whole features" or smaller ones. Anyway, as always, let me know what you think!