Cache offline/failed requests

Fixes #7

@stoodder @Gregadeaux I got both of you on this repo :) Do you mind reviewing this when you get a chance?

**BEFORE:** I had a file that stored a stacktrace that needed to get posted up when the app next opened. This file got deleted right away so if there was no internet connect that stacktract was lost.

**NOW:** There is an `InternalStorage` class that holds on to a list of `SentryEventRequest` objects. This object gets created in one of two places. 1) An uncaught exception 2) When a request fails (could be Sentry error or no internet connection)
Odd that isNetworkAvailable returns true when permission is denied for checking network state. Is this to just bypass the rest of the check and assume that there is network?