Pluggable storage infrastructure

This patch allows plugins to be stored outside the database. There is already a plugin compatible with this patch in the osTicket/core-plugins repo for storing attachments on the filesystem.

Outstanding:
  * [ ] Resumable file migration. Currently migration is assumed to complete in a single pass (request)