Housekeeping: restructured format to be more manageable
Housekeeping: restructured files meant scoping private/public functions became difficult.  Reverted to single file
Refactoring: Moved parameter validations into separate non-export functions.  Introduced private constants for validation values
Refactored query string encoding and simpler base method for all requests