Retrieving facebook entities uses DI

- Refactored question generation to use dependency injection to
  allow for better unit testing without using facebook

- duplicate behavior has been cleaned up
- cleaner design which is now more modular