ActiveRecord Interface and BaseAR

- [x] create AR Interface
- [x] create AR base class
- [x] fix problem with update()/insert()
- [x] update AR extensions to use Base AR
- [x] adjust docs in Base AR
- [x] fix redis AR tableName()

fixes #886, fixes #1205