add xhr service

@kylerush 

steps to test:

-go to route /account/signin to drop cookie

-refresh homepage, the utility nav should be visible with user info and experiments

-all failed validation, parsing, and requests are logged to segment.io in the handleErrors function in the service
-in the closure at the bottom of the user-state.js properties are passed along with the path and HTTP verb.  The properties determine what data will be validated. The handle errors function expects the mapping of the properties to be the same as what will be in the response. 

- if would like to see errors logged go to the handleErrors function and validation functions and console.log the error messages, making paths fail, or putting invalid json in the endpoint files. 

-utility nav dom updates are being pushed to the que in the untility-nav.js inside of assets/js/components
@dtothefp this seems overly nested to me. it's 5 deep. generally speaking i try not to go deeper than 3 as the code them becomes hard to work with/maintain. is it possible to reduce some of this nesting?