Protect MarlinSerial against interrupts
by shielding the CRITICAL_SECTIONs
Now with a test if RX_BUFFER_SIZE is in the required range.
Code in peek() and read() is now optimized for readability and showing the similarity between the two.
Maybe a bit overprotected in checkRx() and store_char(), but now some days without detected errors from this source.