Add TTL caching strategy

OK guys, so this PR adds our TTL caching. It also replaces our nsa service module (rest in peace) with a new DataService module.

The general arch is that services (like AnalysisService) use the DataService to define and execute requests and also cache the results with optional TTL expiration. Under the hood it rides on [Amplify](http://amplifyjs.com/).

Checkout AnalyisService for a reference implementation!

Thoughts on design or usage?