Rewrite of LRS interface and RemoteLRS

This is an extension of what was originally PR #23. Original description:

"-LRS, RemoteLRS, About, LRSResponses, and Documents brought updated to new architecture.
-ContextActivities and TCAPIVersion modified to handle receiving V101 responses
-HTTPRequest and HTTPResponse modified. HTTPRequest no longer extends ContentExchange. It instead stores the relevant
data for a request, and the ContentExchange is constructed in a private function in RemoteLRS."

This adds a few commits that primarily fixes a precision issue with result.duration.
@jakednoble `.saveDocument` doesn't appear to send the Etag. It needs to.