Improved DB port handling

This should fix the issues brought up in #1402:
* Add a new input field for db port (hidden for SQLite of course)
* $db_port is only set if something other than default
* Adds support for specifying a non-standard port for PostgreSQL
* If port is specified, it's passed to smf_db_initiate via the db_options parameter
* Added code to upgrade.php to split port off from db_server if needed ($db_server = 'host:port'; => $db_server = 'host'; and $db_port = port;)