Add options to slave module

The behaviour of nodes started with slave:start/1-3 is sometimes
not appropriate. Especially if the master should have a standby to
take over the slaves in case of failure of the original master.
Here is a way to fine tune the slaves by having options for the hard coded behaviours.
Moreover, it is inflexible to give the remote shell program on the command line.
jinterface: don't need another FilterOutputStream wrapper

DeflaterOutputStream is already an FilterOutputStream
jinterface: fix typo in error message if encoding fails
jinterface, OtpOutputStream: properly override the three write() methods to ensure our growth strategy

Previously, if code called e.g. write(byte[] b, int off, int len), the growth strategy of the parent class ByteArrayOutputStream was used.
jinterface: don't compress small erlang terms < 5 bytes

Compression always has at least 5 bytes (the compressed tag + original size) so we can't get a smaller external term if the original term is already smaller than 5 bytes.
jinterface: don't return compressed external term if bigger than uncompressed

Now, OtpOutputStream#write_compressed() uses the same mechanism as erts_term_to_binary() in external.c: it tries to compress the given term into a buffer of the size of the uncompressed term and if this is not possible, i.e. the compression plus headers is bigger, it uses the uncompressed external term format instead.
jinterface: new limited OutputStream implementation without the need to resize

(saves memory re-allocations)
jinterface: fix a memory leak

after the first try to compress the value with a fixed buffer size, the deflater must be closed so that memory can be (instantly) reused
jinterface, OtpOutputStream: add a write_compressed(object, level) method

Now that we use an own deflater, we can also allow the user to specify the compression level as in Erlang's term_to_binary/2.
Merge branch 'dg/win_icon' into master-pu
Merge branch 'sk/odbc64' into master-pu
Merge branch 'sal/ftp' into master-pu
Merge branch 'as/tls-psk-srp-suites' into master-pu
Merge branch 'rc/break-out-asserts' into master-pu
Merge branch 'nk/jinterface_dont_compress_if_size_increased' into master-pu
Merge branch 'bk/slave_options' into master-pu
Merge branch 'vd/tuple_constructor_bug' into master-pu
Merge branch 'vd/jinterface_windows_cookie' into master-pu
Merge branch 'vd/code_get_mode' into master-pu