Gradient: Refactor to use Transformable inheritance

* Remove deprecated Coords methods & variables
* Separated position & size variables
* Store margins inside Point2i container
config.hpp: Change #error to #warning if compiler is not C++
platforms: Introduce new defines

* Introduce NOM_PLATFORM_POSIX; defined when platform is POSIX Unix
* Remove defining NOM_PLATFORM_ARCH_* with a value of 1
* Introduce NOM_COMPILER_FEATURE_NULLPTR
types: Refactor misc, GCC compile-err fix, ...

* Fix GCC compile-err (missing cstdint header)
* Introduce NULL & nil types

* Refactor 64-bit integer typedefs:
  * MSVCPP: use platform-defined __int64
  * llvm-clang: Use platform-defined int64_t

* Rename nom::size_t typedef to nom::size
* Use #pragma (instead of #warning) — for greater cross-compatibility
system/clock: Fix MSVCPP compile warning

* Implement Windows-dependent ctime_s function