overload Entity.file() to enable adding files

- If you just specify sha1, returns the file.
- If you pass in a file it adds
fixed links to file detail
edit file metadata, put in entity.files and entity.filemeta