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