Week 5, Exercise 2

Description of the functions:
skipWhile: returns a sublist obtained by skipping elements until one does not satisfy the supplied predicate, then returning the rest of the list.

trim: given a llama list, returns the list excluding any leading/trailing 'O's

stateX/expand: functions as a fsm, used to find states reachable in one move from a given state.