removed incorrect use of const_cast from bstree, list, and slist

When `pointer_traits<pointer>::reference` is not a real reference, one cannot use `const_cast` to convert `const_reference` into a `reference`. Instead, one should go through pointers, and use `pointer_traits<pointer>::const_cast_from`.

I removed the use of operator `const_cast` from `bstree`, `list`, and `slist`. The operator is still being used inside `hashtable`.