Replaced uses of std::auto_ptr with std::unique_ptr. Also got rid of ElementDeleter, since it is no longer relevant now that std::unique_ptr exists.