Adding dynamic session adpaters

Adding the ability to define a session adapter other than the 3 known
types. Will catch and throw unknown modules as invalid session adapter
error.

Have hit an issue where connect-mongo doesn't support replica sets and
lets be honest after 9 months of inactivity, it probably wont. This
change allows users to define a customer session store to use while
maintaining errors that are thrown etc.