sqlite insert/select

- change db from :memory: to test.db
  we didn't preserve a global connection of sqlite, therefore, if db
exists in memory, nothing would be left after connection is closed
- add callback _attachmodel to map a db record to an object
- add callback _pre_loop, _next_elm, _post_loop to handle looping
through query result.
- implement QSet