Rewrite decompressor data management.

Previously microfs only had one way to handle decompressor data; one
instance per mounted image. While an improvement over cramfs, which only
maintains a single instance for all images, it still certainly left quite
a lot to desire.

This rewrite of how decompressor data is handled tries to fix that by
making it possible for the user to select how microfs should manage it
by setting the "decompressor_data_creator" param to a suitable value
when the image is mounted.

There are currently 3 decompressor data management implementations:

 - microfs_decompressor_data_singleton
 - microfs_decompressor_data_queue
 - microfs_decompressor_data_global

Another important change is that the default compressor for microfsmki
is no longer hard coded to zlib, instead it is the first encountered
compressor that has been compiled (which is what one would expect).
Add microfs_decompressor_data_percpu.

To allow decompressor data to be managed by percpu pointers it is also
necessary to change how decompressors maps page data. Sleeping is not
allowed when one is holding a percpu variable, so kmap()/kunmap() calls have
therefore been replaced with kmap_atomic()/kunmap_atomic() where necessary
to facilitate this change.
Improve decompressor data management.

This change makes it possible for users to closely control how decompressor
data is managed by microfs.