Clang and ICC/ICL: define DIRECT_THREADED

This is most likely only needed on Windows be-
cause __GNUC__ is not defined by both compilers.

It might fail with some unusual configurations.
If that is the case, feel free to open an issue.
 mruby-math: remove Cygwin compatibility macros

nan:
 The first non-test release of Cygwin 1.5.x was over a decade ago:
 <http://cygwin.com/ml/cygwin-announce/2003-09/msg00001.html>

log/log10:
 This workaround is not needed anymore (1.2.6.1, 1.3 - both over 6 years ago):
 <https://sourceware.org/cgi-bin/cvsweb.cgi/src/newlib/libm/math/w_log.c?cvsroot=src>
Rakefile: make bin directory
array implementation: several small changes

src/array.c:
 - make various functions without declaration in the mruby headers static
 - removed all uncessary int casts and two useless comments
 mrb_ary_new_from_values: move to similar functions
 mrb_check_array_type: fix indentation

include/mruby/array.h:
 mrb_shared_array: padding (default "mrbconf.h" on an usual 64-bit system)
                   sizeof(mrb_int)==sizeof(int)==4 && sizeof(mrb_value*)==8

both:
 mrb_ary_aget:  remove declaration in header and make static
                nobody uses it which is not surprising since it has 1 req arg!
 mrb_assoc_new: small optimization and move to similar functions
 mrb_ary_len:   re-implement as static inline function (it is used by mrbgems)
                programmers should directly use RARRAY_LEN instead
Merge pull request #1693 from cremno/mruby-math-rm-cygwin-compat

mruby-math: remove Cygwin compatibility macros
Merge pull request #1695 from cremno/clang-and-icl-define-direct-threaded

Clang and ICC/ICL: define DIRECT_THREADED
Merge pull request #1694 from cremno/rakefile-mkdir-bin-path

Rakefile: make bin directory
Merge pull request #1697 from cremno/array-changes

array implementation: several small changes
include mruby/version.h in mruby.h
remove direct inclusion of mruby/version.h from version.c; #1698