new method of argument passing

This new method is more robust and it allows for multiple optional
keyword arguments while supporting multiple widgets of the same class
with different config options.

I also included a workaround for backwards compatibility with existing
configs. This may be removed at a later date.
Added optional port/password parameters to mpdstatus widget
fix mpdstatus to work with no password