Encodes all URL parameters and moves to an Exception-based rather than null-based error mechanism in most cases.
Closes #383 by providing default values for all required fields.
Merge commit '3aa625934e56d5b0f7585b8fc290c86ed41dfd73' into HEAD