Added extra methods and fixed some issues.

-Adding SList.compare, SList.rich_compare, SList.slice, SList.insert,
SDict.update, SDict.rich_compare,

-fixed SLIst.contains (it should be looking for values, not keys).

-Made small adjustment to SDict.values (we already have the variant in
 the iterator, no need to fetch it with smap_get_item)

-Caching SLists and SDicts on store.
Fixing pernicious bug related to GC.

On SDict.values(), when a new cache was being created for a python dict
residing in a sdict [because we need to fetch the items to create the
.values() result], python was realloc'ing the new value overriding the
.values() self.

After adding in .values body some Py_INCREF's, it still didn't work. I
assumed then the GC already decided 'self' was no longer in use when it
called .values (wich raises the question: how the reference *in use* to
call .values() was gc'ed?). Anyway, I just added the incref in
SDict/SList initializers and it worked again.
Bunch of commented couts