PiDRAM: An FPGA-based Framework for End-to-end Evaluation of Processing-in-DRAM Techniques (Full Report)