MB-7758: implemented faster misc:dir_size

On my box it appears to be massive improvement.

(n_0@10.17.37.209)9> timer:tc(dir_size, get, [BD]).
{734,3357296}
(n_0@10.17.37.209)10> timer:tc(dir_size, get, [BD]).
{692,3357296}
(n_0@10.17.37.209)11> timer:tc(dir_size, get, [BD]).
{962,3357296}
(n_0@10.17.37.209)12> timer:tc(dir_size, get_slow, [BD]).
{13695,3357296}
(n_0@10.17.37.209)13> timer:tc(dir_size, get_slow, [BD]).
{14616,3357296}
(n_0@10.17.37.209)14> timer:tc(dir_size, get_slow, [BD]).
{13059,3357296}

Unfortunately while go is easy to cross-compile and run almost
anywhere, most of cost is some initialization of go executable. I
think 3 milliseconds is a still a bit on higher side. So we have to
run it as port.

We're sending port netstring of path, and receive LF-terminated json.

Change-Id: I2f153bbd700809b9afe23141b6fe6e8bc958ad83
Reviewed-on: http://review.couchbase.org/24617
Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>