Allow converting output to lowercase and controlling the reduced-to-nothing output

Added a "toLower" option that will toLowerCase() the output after all other transformations occur.

Added a "failureOutput" to let the user control the output if the string gets reduced to nothing (which can only happen if its non-blank to start and trim is true.)

I also added some rigid comparisons in lib/urlify.js just for consistency's sake.