Set data source and delegate as weak references

Should solve some memory issues