Add methods to APIClient to handle request details

Abstracts the request calls out of the view controller and into the client
Add cacheing manager for seldom changing data

Abstracts the workout types fetching and saveing then caches them into user defaults