New parameter string parsing implementation

Rewrote our parameter string parsing to match the Rack implementation and added unit tests to verify the implementation
I feel like explicit comparisons are more readable.