An Efficient and Flexible Host-FPGA PCIe Communication Library