Sources and Providers v2

This is rebound of #48.

I've cleaned the code a little bit and fixed a few problems with the providers.

@mihasya can you try it out and see if it still works as you would have expected?

@technoweenie we might not need to do any more hacks with the ssh configuration when this lands on master.

/cc @d2fn