Add goals support to AI

A **Goal** has is an object that can have many **executions** depending ont it's entry-point.
All goals and executions are managed by the **GoalsManager**, it loads the goals from an **XML file**, manages lists and makes the choice of the **best goal to execute**. GoalsManager can **save goals states** at any time an reload that file later.

Some functions are still TODO depending on other modules interfaces.
The interface of this module shouldn't change from now, it should only be accessed thru GoalsManager.