Fixed "wander" goal.

The NPC will now wander randomly. However, this isn't completely
natural. The change in direction is too erratic. And the goal should be
expanded to stay within a certain area.
Minor optimization.
Added roam goal.

This makes the NPC wander aimlessly within a specified series of
location. This is often more suitable than "wander", as that goal will
make the NPC wander over the whole map, which often isn't what you want.
Remove accidental boost dependency.
Merge branch 'sryan-master'
Make goal checking code more robust and add docs.

Instead of checking whether there's a debug string available we should
check for any operation being returned.
Make goals behave more stringent.

I.e. make functions behave just like subgoals.
Print out the entity id in debug when thinking.
Store last processed goals as debug data.
Send last processed goals in report.

Also don't send data if there's nothing in the collections or maps.
Provide better error messages.
Install properties.

It's imperative that all properties are installed here; else the system
will end up in an invalid state whenever data is restored as a result of
a restart (since any missing property then will default to a core
property class.
Assert and warn about property redefine.

Whenever a property isn't installed into CorePropertyManager properly
there's a risk that the system will be put into an invalid state when
it's shutdown and restarted (and data is persisted and restored). To
prevent this we'll both assert and log a warning if a property ever is
redefined.
Fix tests.
Add test for setting location data for MemEntity.
Make sure location is updated.

Since location data is handled by properties we need to make sure that
those properties are correctly tied to their attributes.
Fix and extend tests.
Remove superfluous method call.
Only print if something changed.

To make the log a little more readable.
Enable location updates of persisted entities.