Allow serialization of dynamic_t of any type.

User can assert on its own if there is a necessity.
Print dynamic_t like the underlying type.

boost::lexical_cast<std::string>(true) returns "1" and boost::lexical_cast<std::string>("string") returns "string" (without quotes). I don't see any reason why dynamic_t containing these values should have a different behavior. If user wants to print dynamic_t as JSON, he should use dynamic_t::to_json.