Feature client api

refs #180 

api's and their actions are gathered from `names.api` `/api`

run time functions are created for the client to lower developers code footprint.

Ex) a `get` from `data.api` previously was done with:
```
client.api('data.api').get("/data").then(function(response){

});
```
now can also be done with: 
```
client.data().get("/data").then(function(response){

});
```

This removes the need for string use (`api("data.api")`) on every api call. Relieves spelling mistakes. 

Api function `data` (and all other apis) is named by removing `.api` from the api name. Api's are prevented from gaining this additional functionality if their name clashes with an already existing field of `client`