Several enhancements

1. Provide a wrapper which return a Q promise
2. Example for demonstrating how to use the new wrapper
3. Rewrite some of codes in probe() in order to pass JSHint checking
4. Update package.json for dependencies and version number