Fix org#2567 Device don't always get the right "capabilities"
- "capabilities" was sometime adjusted in the constructor or in the factory
function, but device_generic_init() that is called later by init_dev()
initialize most of the device fields including "capabilities"
- move the tweak of the "capabilities" in device_specific_init()
that is called after device_generic_init()
- update the device_generic_init() method of all concerned classes
- doing only a return file_dev::device_specific_init(); in child class is
useless (not overwriting the method would be ok) but I want to be
sure that nobody will forget to do it if device_specific_init() is
modified
- testing can be done by searching for "Ready to append to end of Volume"
in job log of "tests/restart-job-test"