[WIP] Remove InvalidateCache and cached_* from User class.

This was useful when we used `const char*` as concatenating C strings
is messy. However, concatenating `std::string` is easy and this code
gives no noticeable performance increase.