Adding actingAs functionality according to following @dividedmind guidelines:
have a private member in the client with current acting_as, which is only set once,
modify AuthenticatedRequest() to append acting_as parameter if not null,
have a method Client ActingAs(string role) const in the Client, which returns a NEW Client instance which shares the authenticator with the original one but has a acting_as set as provided to the method,
remove specific acting_as code from other methods.
Adding actingAs functionality according to following @dividedmind guidelines:
reminder: We will check "timer" GC correctness