Replaced memoized `s3-client` fn with core.cache & core.memoize solution...

Allows multiple clients created using temporary session credentials to be cached
under a single key by providing a :client-id in the `cred` map - Closes #15

Also:
* added `core.cache` and `core.memoize` to deps
* moved s3-client code to `aws.sdk.s3.client` ns
* added basic tests to verify cache behavior
Added type hint to `aws-creds` to avoid reflection