Uri parsing, modification, query string manipulation and high-fidelity re-stringification in javascript.