Extract currency exchange method into service.
Move currency preference into service.
Change exchange rate callback from block to delegate.

This allows multiple observers/windows to share calls.