Added various OS files to gitignore

Windows OS and Mac OS specific files are now ignored.
Cleaned up the input-validator.js file.

Clean up the doc-blocks.
Moved the "private" functions to the export line.
Fixed an object key iteration.

Added a test that tests that prototype properties is removed
correctly when filtered.
Reorganized the exports

Reverted to the old way of exports on top and function declarations
after that. Updated the docblocks to reflect this way of structuring
modules in node.
Fixed the comments

Moved the comment blocks to please the linter.
Merge pull request #2 from Springworks/chores/maintanance

Chores/maintanance