use counted pointers and implemented dispose

unfortunately i didnt get covariance behavior working for MCefRefPtr so some downcasts still remain. but more important counted pointers and not *. at least my software architect told me that counted pointers must always be stored and passed by value otherwise refcounting does not work as inteded.