Refactor Firebase class, improve api, change style #41
Description
I think we should refactor the Firebase class, while it is young and small seems the best time to do it.
I am personally against to the current paradigm of "do an action" then "explicitly check for error()". While this is exposed in professional apis (win32 comes to mind) it is usually not well regarded as those interfaces age. It is error prone as it is very easy to not explicitly check for the error than use the result as if it succeeded. It also has thread safety implications.
I propose that instead we return a FirebaseResult class that contains the status code and an optional result body and exposes helpers like is_error().
I also think we should take this time to standardize style guidelines for this class. Personally I propose using the Google C Style guide (https://google.github.io/styleguide/cppguide.html) as much as they apply to wirinig in its c-likeness. I think there is value in uniformity of the code as it develops, I am open to other styles as well but I think we should try to standardize on one if we can.
I will put together a pull request reflecting this change if no one has any objections.