Added validation User type shell property and unit tests

Added validation so shell values must represent a valid file, and executable file. Tests included as well.