Fix configuration option merging.

Previously, there were issues where overriding options could remove large
portions of the params tree. Reversing the way we merge options offers an
elegant workaround.

Also introduced some debug output to help identify future issues.
Tidy up code.

Remove unnecessary newlines and commas.
Add convenience static get_by_id() method to code_challenge.
Begin adding AJAX API, both client and server side
Replace ugly code_challenge::make() call with ::get_by_id().
```require``` -> ```require_once```.