[NODEJS-1598] PoC of acs-node-sdk Rework

## Ticket Information
***JIRA Ticket***
https://jira.appcelerator.org/browse/NODEJS-1598

***Description***
This PR is about to raise a PoC of ACS Node SDK rework. It re-designs framework of acs-node-sdk, and supports multiple instances. It also provides a way to list all available ACS objects and methods including doc url for a good reference. Test framework with travis-ci is added too for a good and automatic test.

Since this is only a PoC, I only implemented ACS object "Users". If this way is towards to a good direction and passes code review, we will add all other ACS objects later.

## Get started
Please refer to readme file https://github.com/realpaul/acs-node-sdk/blob/NODEJS-1598_ReworkPoC/README.md for a general usage.
This should be `!==`. There are several other places in the code that also use "double equals" (`!=` and `==`). Unless you *very explicitly* want to coerce types, use "triple equals". This makes it easier for a future developer looking at this code to reason about what you intended it to do.

In this case it will be identical because the `typeof` operator always returns a non-empty string, but consider the following example:

```javascript
module.exports.makeRequest = function(options) {
  if (options.json != false) {
    // do some JSON parsing
  }
}
```

If a developer using this module does something not-quite-standard and calls the function like this:

```javascript
thatModule.makeRequest({
  json: 0
});
```

the JSON won't parse, which is likely what they intended to happen. However, say a new engineer comes along and works on the underlying module and thinks "DOUBLE EQUALS!!! Ha, I can 'fix' that!" and changes it to `!== false`. All of a sudden, the user of that module will start getting back parsed JSON instead of raw text.