Having initial position as a part of server_state does not allow
restarting the provider from different startup position without
either reconstructing server_state or adding setter method for
initial position. As the only use for initial_position in server state
was to pass it to provider during provider load, it makes more sense
to have the initial position to be passed as an argument to
server_state load_provider() method.