nits
frameencoder: remove redundant clear of frame stats

they were being zero'd in the constructor, init(), and in compressCTURows.
techincally only the last is truly necessary, but I'm leaving the memset in the
contructor.
frameencoder: remove second encodeCU() pass over CTUs when SAO is disabled

This is a performance optimization, it allows the encoder to generate the final
bitstream of each CTU as it is compressed and cache hot.

When SAO is enabled, SAO analysis must be performed and coded at the start of
the CTU but SAO analysis currently requires surrounding CTUs to be encoded
making the second pass unavoidable.

Note that this commit changes the way non-WPP encodes are performed, for the
better. Now it always uses row 0's CI_CURR_BEST entropy coder instance to
communicate entropy state between all CTUs and between rows. This better models
how encodeSlice() works and makes RDO work better
frameencoder: merge more of encodeSlice() into processCU

this commit fixes no-WPP after the previous change. the per-row or per-frame
(+- WPP) bistreams are flushed as they are finished (and cache hot) and the
per CU stats are summed per row and then summarized all in one place.
frameencoder: do more CU stat math as integer
frameencoder: rename percent fields for clarity
rc: move FrameStats to ratecontrol.h

rate control shouldn't need to include frameencoder.h
frameencoder: combine some conditional expressions
frameencoder: avoid another call to resetEntropy(), they are expensive