Egan

Added the linear choice, weighted linear choice, and exponential choice

#### 1 Linear Choice
  * Engineers that exceed the preferences get a bonus of skill value - preference value
  * Engineers that don't meet the preference get a penalty of preference value - skill value, so are less likely to be chosen.

#### 2 Weighted Linear Choice
  * Engineers that do not meet the preferences for a skill will be penalized by (preference - skill) * 1.5
  * Engineers that exceed the preferences for a skill will get a bonus of skill - preference

#### 3 Exponential Choice
  * Engineers that do not meet the preferences for a skill will be penalized by 2 ^ (preference - skill)
  * Engineers that exceed the preferences for a skill will get a bonus of skill - preference

If you review these functions and think there is a problem with it or there is a better way to do it feel free to change it. I still need to write more tests.