Fixed review issues

- added generic option for provider-specific properties with tests
- fixed formatting and comments
- better collection handling with Guava
- used polling & stopwatches instead of just sleeping when waiting for spot requests