Added special obstacle called Portal through the type variable.

A Portal is an obstacle that if hit, teleports the laser to a different
location. It is set through the Obstacle's "type" field which should be set to
TYPE_PORTAL.

Also, a new field of type HashMap was added for obstacles requiring additional
attributes. The Portal uses this HashMap to store the location of the end of
the portal using the key KEY_PORTAL.
Added special obstacle called Colored Mirrors

Similar to Portal Mirrors, Colored Mirrors have special behavior. When a
Colored Mirror is hit, the laser simply passes through it but the laser then
changes color. In the future, obstacles that accept only a certain color of
lasers will be implemented to utilize this special obstacle.