Create RegisterIdLoadConvention to allow easier non-string id configuration

This PR enables you to:

docStore.Conventions.RegisterIdLoadConvention<Room, int>(id => "r/" + id);

then

var room = session.Load<Room>(13)

resulting in the load of document with full id "r/13".

In other words, this is the "load time" version of RegisterIdConvention().