image upload controller refactor

issue #635

- upload controller shouldn't assume fs
- filesystem module proxies all the fs work
- creating a unique filename is a separate util