Added a Base.cast static method to allow proper casting of hash/object literals into proper Base objects of the passed-in Class.