DataSet::Value: specialise the bool case to use 8bit size bitfield

For this we specialise FileValue<bool> to use an "unsigned char"
as the boolean storage (instead of bool directly) and then translate
this to (via NATIVE_B8) to STD_B8LE hdf5 types.
This should close issue #185
DataSet: unify {file, mem}TypeForValue() to common function

The common function is the new h5_type_for_value_dtype()
Merge pull request #186 from gicmo/valueWriteBool

Special case bool when for Value IO