Add support for 'expire' and stop managing home directory if createhome is set to False

Added support for expire which I needed for my own purposes.
Also fixed the behavior of file.directory which was managing the home directory even if createhome was set to false.

The latter was causing issues with my openssh chroot as it kept resetting the ownership and breaking stuff.
Might consider adding some logic later allowing custom ownership and mode on home directory since it overrides anything changed. But for now this is enough for my purpose.