include/queue: Add functions for file queues and duplicate-free queues
For certain automation tasks, it would be helpful if filesystem objects
could be passed through queues. This commit adds such functionality to
the queue module.
For passing files, these functions can be used:
- queue_put_file()
- queue_get_file()
For duplicate-free transient data:
- queue_put_unique()
- queue_get()
For other transient data:
- queue_put()
- queue_get()
There are two things worth noting:
1. The queues are line-based (transient data may not contain newlines)
2. Queues cannot be used for transient data and files at the same time