Accept paths with ~ for generate on Windows.
The generate function has a fairly strict definition of what is and isn't
legal as a command name, in an effort to keep it reasonably sanitary.
On Windows this included ., -, and any alpha-numeric characters, but not
the ~ character. This blew up when faced with an "8.3" generated path -
something that we legitimately should accept since it can reduce problems
around spaces in path names.
This changes generate to accept that, and adds a specific test to verify that
it continues to work as expected.
Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>