Move boost::uuid into wrapper class, improve build speed by 20%

For one, including boost in public headers is a discouraged practice for multiple reasons anyway. Also, this reduces the compile time by a whopping 20%.

> make -j 7  846.30s user 73.74s system 562% cpu 2:43.64 total
> After removal of boost::uuid
> make -j 7  574.92s user 56.96s system 547% cpu 1:55.33 total