Decoder code commenting

Added extensive commenting to the _decode_frame() code
Reduced variable replication

Reuse some variables rather than keep creating new ones. Found at some
points the same frame was being held in various states as f, received,
decoded, processed, data etc so when the previous "frame" variable is no
longer needed it is overwritten. hopefully less confusing and less
memory intensive. Also expanded 't' & 'f' to 'timestamp' and 'frame'.