Added copy constructors for several classes

In order to facility factory-creation some classes need better copy
constructors. This is the first of many commits to fix this...
Indentation fix
Changed camera following strategy

Camera now only moves when Rock is "half way" or more in the screen's
view.
Added Vector2<T> tests; going to remove Vector2D
More camera movement stuff

Not happy with current implementastion; needs work
Added detection for spikes in Hero
Added TileAttribute::hasAttribute helper function

TileAttribute::hasAttribute allows you to see if a tile has a particular
attribute without having to bloat your code with bitwise AND and
checking the result.
Code formatting and helpr function usage
Replaced bitwise ANDs with helper function

TileAttribute::hasAttribute(xxx, yyy)
Merge pull request #39 from zackthehuman/master

Camera tweaks, code cleanup, added helper functions + spike detection