-------------------
Levels of Behavior
-------------------
There is a notion of levels of behavior, where each level is built upon the
actions of the level below it. There are currently three levels of behavior
in our client. 
Level 0 corresponds to the actual commands. It is only a subset of
the actual possible commands and is there mostly for resons
of consistency.
Level 1 contains such behaviors as go_to_point, turnball, and hardkick.
Level 2 contains such behaviors as intercept ball, pass, and go to position.

The enumerated types and structures are defined in Memaction.h.
Each level has an an enumerated type with an entry for each behavior at that
level. The naming is BL?_<behavior> where ? is the level.
Each level also has an assocaited structure which contains an entry for the 
type and all possible parameters that each behavior type may need
(for example, BL1_GoToPoint takes a Vector to the position to go to)

All functions described are part of ActionInfo.
The functions BehaveLevel2To1 and BehaveLevel1To0 translate the higher level
action into a lower level one and return that. By storing the returned command
structure, you can avoid having to repeat any computation.

The function GenerateAction takes a command structure of any level and uses
the above functions to actually put an action into the Memory structure.
If there is a failure of some sort, it returns 0.

If you want to get a certain behavior, all you have to do is take a command
structure of the appropriate type, fill it out, and call GenerateAction.
