adding IHttpRequest Interface

Separating curl into its own interface to make it testable
Also fixed a bug in the discussion panel - should do more work here
later and separate it into 2 views