Added in abstractobject and EObjects

AbstractObject holds alot of the core behaviour between all of the
objects, whereas EObjects holds the default values of health for each
object. One major change from the prototypes was giving AbstractObject a
second constructor, which allows the creation of an object with a
completely random spawn point and direction without having to have
methods for over-riding the location and such completely.
Adding in an ignore file.