Replaced fixed position patterns with record patterns.  Much cleaner code that is easier to maintain as well.
Also, added support for credentials.
Removed 'usesDefaultPort' as a stored record field and instead compute it when needed, which is fairly rare.
Added support for case-insensitive comparison on scheme to determine default port.
Added implementations for 'without', 'getParam', and 'getParams'
Added proper encoding of segment, query, fragment, and user-info.
Replaced 'joinString' with a better implementation.
Converted to FP Complete Haskell Center
Minor clean-up based on recommendation from FP Complete
Replaced 'join' with 'intercalate'
* added a module definition and compiler extensions.
* added with' function that takes (String, String) instead of (String, Maybe String)
* added getScheme and getAuthority functions for rendering
* added PlugAppend type class with & operator for simplified appending to plug
Do not expose the constructor. Use backticks in the sample plug creation
Merge pull request #1 from nataren/tweaks

Do not expose the constructor. Use backticks in the sample plug creation