S3 file server backend support 

There is a big requirement to get this module up to scratch on my end so I am more than happy to move quick on suggested changes and bug fixes

I have listed the following issues, which I would love some advice on, and will allow this to be rendered in a useable state.

Major Issues:

* def init():  - this is expected fire when the the high-state is called, but it is not, without this function calling, the buckets are not queried, and the whole module wont work
 My requirement is that this method  runs only once before each request for files is made, not for each request of a file ( as that will bog salt down massively), I was thinking the init method would do this, but its not seeming to run at all 
 
Minor Issues:
* def file_list_emptydirs(load):   not implemented, not sure what effects that will have
* def dir_list(load): not implemented, not sure what effects that will have
* Files are retrieved and cached (on individual request) on the salt master and only re downloaded when md5 changes, However between the master and the minion, the files are always transferred as if they have changed when they have not.  So this will need to be fixed

eg 
``` yaml
    State: - file
    Name:      /tmp/test.php
    Function:  managed
    Result:    True
    Comment:   File /tmp/test.php updated
    Changes:   diff:
```