Issue #152: Make the file entity a classed object

PR for https://github.com/backdrop/backdrop-issues/issues/152. This converts files to real entities, based off of the patches at:

- http://drupal.org/node/1401558
- http://drupal.org/node/1361226