accept arguments on setup

useful if you want to setup a new instance programatically
"Sounds" tab in Settings page... WIP, needs fixing.
WIP - settings.prepare refactoring... because.
adding missing files
Merge branch 'master' of github.com:designcreateplay/NodeBB
Merge branch 'master' of github.com:designcreateplay/NodeBB
Merge branch 'master' of github.com:designcreateplay/NodeBB
ACP integration for Sounds
securing settings.save socket listeners behind admin namespace
fireEvent reflection socket call, tweaks to Sounds page in ACP
added emitter class; express.listen only after background tasks complete; closes #1227
fixed bug in api/search causing it to crash if term is not passed in via ajaxify, see #1195
resolved #1223
Merge branch 'master' of github.com:designcreateplay/NodeBB
trim leading whitespace/#/? in search closes #1195
Merge branch 'master' of https://github.com/designcreateplay/NodeBB
closes #1174
potentially fixes #1228
don't refresh widgets on every new post
closes #963