Refactored folder structure to better match node module standard structure.
Added comments on some classes
Removed 'authorize' emit event and created which is now replaced by an authorize function.
Added ip address to the authorize event
Added ability for the authorizeFn to ask StratumClient to close connection
Added difficulty parameter to the authorizeFn
When clients disconnect new emit + memory clean up
Replaced some console.log with console.error
Added todolist
code cleanup
Added jobManager.blockHashHex which should generate the expected block hash but it seems to not work properly
Moved check for the share difficulty after the block check since it's useless to make the check there.
Changed emit event from client to client.connected and added client.disconnected
Changed share emit data. Now we pass the client instance to everyone listening to the share event.
Added mining.get_transaction to the handled events of stratumclient. It looks like bfgminer uses this.
changed StratumClient.sendDifficulty to StratumCLient.sendAndSetDifficulty which will also perform a check on the given difficulty and broadcasts the sendDifficulty message to the client Only if the new difficulty is different from the previous one.
Code cleanup and comments
Fixed Todolist markup
Merge branch 'vekexasia'

Conflicts:
	example/coins/dogecoin.json
	example/init.js
	index.js