New limbs

New limb system: limbs, capabilities, checking for ability to perform some action.
I think you should think about direct mapping of actions and capabilities. This function should be rewritten as something like

```scala
action.capability match {
  case Some(c) => bodyparts.exist(_.actions.contains(c))
  case None => true
}
```