Multiple resolve results & Server error protection

This includes:
- Multiple resolve results support (using a location list to let the user choose).
- Error handling for server errors (server unavailable, http/rpc errors, etc.).
- Several code refactorings to improve architecture/legibility.