Refactoring the server tests to use a helper func

This makes the tests smaller, less repetitive and easier to maintain.
Moving SendCommandRequest into appropriate module
Passing user options to server now
Passing user options as file to server

This is a much better idea than starting the server in a default state, and then
resetting the state with a POST request.
Renaming server.py to ycmd.py
default_settings.json now actually has defaults
Adding a script that prints all YCM TODOs
NativeFiletypeCompletionAvailable works again
The UltiSnips completer works again