i#1850: improve drreg scratch reg selection
i#1850: improve drreg scratch reg selection

Fixes a bug in drreg_reserve_dead_register() where a previously-used but
not-currently-dead register was being chosen.

Fixes an error in not considering %lr to be dead for OP_bl or OP_blx.

Prioritizes a dead register over the absolute min-use reg.  Removes the
absolute min and max use fields altogether.

Prioritizes a dead register over a previously-reserved register without
leaking slots by dropping a lazily-held unreserved slot when its register
is written by the app.

Fixes #1850

Review-URL: https://codereview.appspot.com/285900043

AmesianX/dynamorio,AmesianX/dynamorio,AmesianX/dynamorio,AmesianX/dynamorio,AmesianX/dynamorio