Let encryptFile and decryptFile accept completion, failure and progress callbacks

These changes release `miniLock.js` of all dependencies on `ui.js` as a means toward #30.

I’ve modified `encryptFile` and `decryptFile` to accept three callbacks, one for completion, one for errors, and one for progress. Here is the canonical example from `ui.js`:

```
miniLock.crypto.encryptFile(
	miniLock.UI.readFile,
	outputName,
	miniLockIDs,
	sessionID,
	miniLock.session.keys.secretKey,
	'miniLock.UI.fileOperationIsComplete',
	'miniLock.UI.fileOperationHasFailed',
	'miniLock.UI.animateProgressBar'
)
```

Thoughts on this?