File Tracker implementation with polling.

@bsoetaer 
It would be a lot of work to use INotify without using any external libraries, and since Miller hinted in class that polling would be OK for this part, I figured that would be the best way to go.

For part 2, how much are you implementing in C?  I think that a precise sleep method should be enough - then we can reuse it in part 3.
Note about this choice(Further details below): For some reason when I call Delay.nanodelay from inside a thread and I create 2 threads the delays conflict with each other (first delay must end before second starts. 
Note about behaviour I have observed while trying to remove the forking from part 2 so far:
If I change my delayed_action to make a thread instead and that thread calls Delay.nanodelay and 2 delayed_actions are set at the same time then the delays seem to run after each other. In the below example both threads are created but then the code does not finish until 6 seconds later. (Not sure if HI is printed out after 2 and then BYE comes 4 later due to puts actually ending the thread and not printing out). Also just changing them to threads gives the ruby code back control of the program while the threads are running but if the program were to end it does not give the control back to the console until the delayed_actions fire.
```ruby
delayed_action(2,0,"HI"){|m| puts m}
delayed_action(4,0,"BYE"){|m| puts m}
```