chore(utilities): move filename extension extraction logic to a util function
feat(client/js/uploader.basic.s3.js): #897 - key name determination
- support 'uuid' keyname option value
- support 'filename' keyname option value
- support functions (optionally promissory) as keyname option values
- ensure the extension is always appended to the key name