Add InMemoryCache using LRU to replace out of range/least used cache items

`SMWSql3SmwIds` handles cache limits and generates id's while using
"Random Replacement" as a method (which is less appropriate) to discard
cache items.
Use Doctrine\Common\Cache interface definition
Add InternalIdLookup to SMWSql3SmwIds

Adds the possibility to get a DIWIkiPage object for an Id