Phong shading, Lightsource class, Camera bug fix and refactor.

***This is a summary of the 10 commits in this patch.***
### Header guards
* Header guards now implemented in all of the headers. Name the guards like this:
```c++
#ifndef MY_CLASS_H
#define MY_CLASS_H

class MyClass { /* implementation */ };

#endif
```

### Makefile
* Detects new .cpp files automatically, no longer need to append "MyNewClass.o" in makefile when new
  class is created.

### Phong shading
* Now calculates specular highlights from both directional / point lights.
* Does *not* consider material color. 

### Lightsource class
* Class for creating directional / point lights. The light sources are created via factory method.

### Camera
* Fixed bug that made the orientation of camera incorrect.

### Misc.
* Removed some unnecessary header includes.
* Reduced the use of dynamic memory.