Offloading and content caching in 5G heterogeneous networks: a game-theoretic perspective