Let's call a user a User
If we want it to be an array, write it as an array
We only have one registry so we don't need it to be a constructor.

This mostly allows us to do the refactoring coming next...
Now that registry is a singleton we don't need to pass it around everywhere
Don't expose data unnecessarily
Email and URL and not required fields for a user
Stop using 'this' in a non-object context.

In each case, 'this' will have been the global object. Even if this is what
was intended, it makes it harder to understand what the code does. Use a
local variable instead.
Extract common model functionality into an inheritable prototype
Reject promises with the error that was raised
Changed the flow so that the registry is ready before starting the server.

The old way had us checking the same promise (for getting the db) over and
over again. It tied random parts of the system to an implementation detail
of the registry.
Search is apparently not used. Nonetheless, it was duplicated.
More model refactoring. Don't create deferreds if we have promises.
Oops, meant to save this too.
Fix failing tests
Merge pull request #32 from wibblymat/clarity

Big refactor to make the code easier to read