Add multithreaded capability to poracle

### Changes in Poracle.rb
* **Poracle.generate_set**: original implementation return character
array, then attempt to do ACII conversion back to bytearray . This will
have problems when encrypted value is using different encodings.
* **PPoracle.find_character**: some server validate valid block
construction up to the blockprime, so instead of sending:
*
### Changes in Main program (DemoMultiThreaded.rb)
* Added multithreading capabilities using meh's library:
https://github.com/meh/ruby-thread
* Added ability to save temporary results to file
* Format: *[block index],[decrypted value]*
* Added ability to skip already decrypted blocks

*[Block n][Block n+1]*

Send:

*[Block 0]...[Block n][Block n+1]*

Usage: Demo.rb [options]

Specific options:
-s, --sort   Sort temporary results
-v, --verboseShow debug messages
-t, --threads SIZE   Set threadpool size
-f, --file FILE  Save temporary results to file
-h, --help   Show this message

ruby DemoMultiThreaded.rb -f tmp.txt -v -t 10