fixup mt_rng constructor

Use config::attribute_value and str() rather than std::string as a
temporary variable.
add next_seed_str to seed_rng, and use in synced_context

This commit moves some of the stringstream manipulations of seeds
into the seed_rng namespace and thus out of the rest of the engine.