Separated assets.put() into two functions

- putMeta() and putData()
- Converted fromUploads to use promises
- Fixed unit tests