Provide opportunity to change RespositorySystemSession

Make respository-session public so it can be wrapped
and use an options map.

Allow passing in :repository-session-fn to be used
for creating a repository-session.

Fixes #54.