Passing None as a database used to cause a crash

Server/database/user/password now can accept None as a value
Username/password already supported that, now database/server support that as well.

Default argument values changed to None to remove duplication and ensure that default value specified only once.