Correctly identify stack level in ``_extract_engine``

Add on the needed frame evaluation logic to be able
to correctly locate where users frames start and ours
end so that we can correctly report the stack level in
the deprecation messages (which the warning module will
use to show the location of the users code that is using
the deprecated usage).

Change-Id: Iae5919fb0f79ffbf9e1784723dc8da1cefdb9f27