Make sure to always close db connections

This fixes a bug where if a method raised an exception, the connection to
the database wouldn't be cleaned up appropriately.
Add a pwm.modify_domain method

This allows setting new username for domain, or generate a new salt.
Use decorator package for defining decorators

Make decorator declaration flat instead of nested (good thing), and
preserves function signatures so that documentation builds correctly.