Imporving API error handling and reporting

Summary:
Changed FacebookRequestError so that it returns code, message, and type for API errors. I haven't documented
the code yet because I am not sure about my approach (first code change on python SDK).

Test Plan: Just catch the exception and do e.get_api_error_message() or other related methods.