Added a bm_blit_ex() function which is the Swiss Army Knife of blitting functions, with scaling and an optional mask.