DPDK initialization creates its own threads and assumes that application uses them, otherwise things do not work correctly (rte_lcore_id() returns incorrect value for instance). This patch uses DPDK threads to run seastar main loop making DPDK APIs work as expected.