drop 'Request' suffix requirement for request name

Session.request() will handle appending 'Request' to the 'name'
parameter for the underlying blpapi-node API.
support partial responses

This change introduces error-first style callbacks for requests.  A
third parameter for the callback indicates whether it is the final
invocation of the callback for a given request.
properly append 'Request' everywhere
Merge remote-tracking branch 'eric/api_abstraction' into qndirty-m
Handle partial responses
Convert to using Bluebird promises
Separate version check and api-session into middleware
promiseify start|stop APIs

Promisify the start|stop API while also being backwards compatible to
handle an optional callback.  This change introduces a dependency on the
'bluebird' Promise module.
remove stale/unused code
Merge remote-tracking branch 'eric/api_abstraction' into qndirty-promise

Conflicts:
	package.json
index.js: use new promisified BLPAPI
lib/strmap.js: simple ES6-like hash map
lib/strmap.js: assert if constructor called without new
promisify request internals for opening services

This change greatly simplifies the internal handling of the session
request.
s/blpapi.js/blpapiwrapper.js in ./lib
utilize npm 'debug' module for logging
 lib/api-session.js: use StrMap instead of a plain object
Send a chunked response
.gitignore: ignore vim .swp files
Merge remote-tracking branch 'eric/api_abstraction' into qndirty-promise

Conflicts:
	package.json