core: Label now uses shared_ptr<char> instead of std::string