fix and add test for Proc#source_location
error.h: add extern "C" for C++
visualcpp toolchain: change compiler/linker flags

with these flags visualcpp should behave more like the gcc toolchain

c:
- produce debug information
- optimize for speed instead of disabling optimization
- use non-debug version of Microsoft's C library
- remove unused and unnecessary macro definitions
cxx:
- separate C and C++ (#1594)
- specify kind of exception handling (see warning C4530)
linker:
- produce debug information
- disable incremental linking and re-enable optimizations
Merge pull request #1816 from cremno/error.h-add-extern_c

error.h: add extern "C" for C++
Merge pull request #1817 from cremno/visualcpp-toolchain-change-cflags

visualcpp toolchain: change compiler/linker flags
Merge pull request #1815 from take-cheeze/source_location

Fix and add test for Proc#source_location.
fixed broken gettimeofday implementation for Windows

small, but critical typo :)
Merge pull request #1818 from unak/patch-1

fixed broken gettimeofday implementation for Windows
Fix build on mingw32
Merge pull request #1819 from mattn/fix-mruby-time

Fix build on mingw32
embed small string
use flags 4 for *this object is embed*
use flags 8~64 for *embed string length*
make embed string when create literals
add embed string test
Fix behavior Hash#eql?
.PHONY should be placed after `all'

Because some make (e.g. nmake) recognize it as a normal rule definition and if it's the first rule, make runs it as a default rule.
Consequently `all', `test' and `clean' are all ran (because they are depended by .PHONY), and builded files are cleaned.
Merge pull request #1823 from ksss/hash-eql

Fix behavior Hash#eql?
Hash#== and eql? should not return fixnum; ref #1823
Merge pull request #1824 from unak/patch-1

.PHONY should be placed after `all'
Merge pull request #1820 from ksss/string-embed

Embed small string
reduce integer type complexity from int/size_t/uint32_t by unifying them to uint32_t; close #1778