Fix for crash when using regexp searches

Since commit baf31455989ce1b3b2268e0d80e6b90b002afa9a buffers for
bin_keyword and bin_keymask at RSearchKeyword structure need to be
allocated dynamilly. The allocation was missing causing a crash.

Added check to avoid empty regexp filters
Added JSON output support for multiple search cmds

JSON output support has been added for the following cmds:
| / foo\x00              search for string 'foo\0'                         // Si
| /j foo\x00             search for string 'foo\0' (JSON output)           // Si
| /! ff                  search for first occurrence not matching          // Si
| /+ /bin/sh             construct the string with chunks                  // No
| /!x 00                 inverse hexa search (find first byte != 0x00)     // No
| //                     repeat last search                                // Si
| /a jmp eax             assemble opcode and search its bytes              // Si
| /b                     search backwards                                  // Si
| /B                     search recognized RBin headers                    // No
| /c jmp [esp]           search for asm code (see search.asmstr)           // Si
| /C[ae]                 search for crypto materials                       // No
| /d 101112              search for a deltified sequence of bytes          // Si
| /e /E.F/i              match regular expressions                         // Si
| /E esil-expr           offset matching given esil expressions %%= here   // No
| /i foo                 search for string 'foo' ignoring case             // Si
| /m magicfile           search for matching magic file (use blocksize)    // No
| /p patternsize         search for pattern of given size                  // No
| /P                     show offset of previous instruction               // Si
| /r sym.printf          analyze opcode reference an offset                // No
| /R [grepopcode]        search for matching ROP gadgets, comma-separated  // Si
| /v[1248] value         look for an `asm.bigendian` 32bit value           // Si
| /w foo                 search for wide string 'f\0o\0o\0'                // Si
| /wi foo                search for wide string ignoring case 'f\0o\0o\0'  // Si
| /x ff..33              search for hex string ignoring some nibbles       // Si
| /x ff0033              search for hex string                             // Si
| /x ff43 ffd0           search for hexpair with mask                      // Si
| /z min max             search for strings of given size                  // Si