Refactors JugglingModelTrait. Extracts procedures to methods. Enforce valid types.

Minor refactor and now InvalidArgumentException is thrown upon "Add/Set/Juggle" invalid type rather than only at JuggleTime™
- Refactors `juggle()` extracts procedures out to dedicated methods
    - getJuggleMethodName($type)
    - normalizeTypeString($type)
    - buildJuggleMethodName($normalizedType)
- Now enforcing valid "desired type" within setJugglable()
    - Utlizes newly added getJuggleMethodName($type)
    - `@throws InvalidArgumentException`
- Tests
    - Adds testAddInvalidJugglableThrowsException
    - Adds testSetInvalidJugglablesThrowsException
    - Modifies existing tests setting invalid type 'foo' to use valid type