Fix bug in allocate.

Hi. This single commit just fix a small bug in rts, but the bug is pretty critical.
Example of program:

``` haskell
module Main
import System

main : IO ()
main = getArgs >>= print
```

Now we run it (with heap size set to 100 bytes):

``` bash
$ ./args-test somearg
args-test: idris_rts.c:118: allocate: Assertion `vm->heap_next <= vm->heap_end' failed.
```

The problem is that whenever we test "should we do gc?" in procedure called _allocate_, we doesn't take in consideration size of allocated chunk but requested size. Therefore we can write exactly at addr of heap_end  and that's not right. (e.g. set field of CON, or memset in the _allocate_, etc)
So, the correct condition is: 
```c
vm -> heap_next + size + sizeof(size_t) < vm -> heap_end
```
instead of:
```c 
vm -> heap_next + size < vm -> heap_end
```