Fixed huge memory allocation #297

The implementation of drawRect caused the allocation of a bitmap buffer for the whole screen size. I switched to a sublayer to draw the gradient (more memory efficient than `-drawRect:`) that is removed on dismiss. For `SVProgressHUDMaskTypeBlack` we can simply use the `backgroundColor`.