surfaceflinger: Allow gpu to render widevine level3

Allow gpu to render widevine level3 but keep
blocking screen shots.

CRs-fixed: 428647,424769,421767

Change-Id: I914232a062acbb7b17901dbf2b414973230e59d9
(cherry picked from commit f6b607811a6b72487738885752c0ad1c3e53a0d8)
frameworks/native: fix copy back dirty region

Copyback dirty region logic does copyback,
even when its not necessary causing 2ms delay.
Fix the logic to copy back only what is necessary.

Change-Id: I52de68258ac9f87d704ee5401f93417805fa6773
(cherry picked from commit bf5b5b6a04fa97290b82aecbc493e908ae3ac63b)
Support forcing all screenshots into a CPU consumer

Looks like a full GPU path is less efficient on some GPU
drivers that we're still using, and CPU is reliably faster...
(there's probably a locking condition going on somewhere, this
needs to be looked into)

Change-Id: I8878796a117d65bf2324507cf8755cadce49f6dc
(cherry picked from commit 39bdbe08cf6969fdb1d52f04c50e6bb8d5147121)