logfs: support multiple instances of logfs

This adds support for multiple instances of logfs.  This could allow us to use logfs for settings in one flash device/region and a separate instance of logfs for other storage in a different flash device/region.

All internal functions are now properly parameterized so they accept a pointer to a logfs state.

There are currently no users for this functionality.  I have not fully tested this on any FC yet.  It passes all previous unit tests as well as some new ones.