Input and output array for CMSIS DSP Real FFT Q15 functions
why is that ?


It is possible that I am misunderstanding, but I think only the first N/2 complex samples are used. The other half may be used for scratch space, since it looks like it reuses part of the general FFT, which (looking at the documentation) is computed in place using a 2*N length buffer.  I agree, the documentation could be more clear.  


  I understand the simple fixed point arithmetics, but how I'm supposed to convert my real int8_t values to 1.15 format? 


Q15 means that you have a signed numbers in the range -1 -> ((2^15)-1)/(2^15) (very close to +1) stored as signed 16 bit integers (presumably).  Essentially, you mentally divide each integer value by 2^15.  Your int8_t values are -128 .. 127, or Q7.0.  If you put cast them to int16_t (put them in the least significant byte of each Q15 sample), you can factor out that 128, and just call it a Q15 value.  


  and what to do with the ouput type (let's say 256 points FFT which outputs values in the 8.8 fixed point format)? I guess some scaling should be done but I don't understand the upscale thing.


Fixed point numbers have the problem that dynamic range is limited, so if the values get large, they become inaccurate.  What that chart is telling you is that they have rescaled each number into a new format to maintain accuracy.  So you will get an 8.8 number (value divided by 256 instead of 32768).  To get the true value, divide by 128 (shift by 7), ideally using 32 bit value so you don't lose precision.