Arrowhead - Iteration 2

I made the following changes in this iteration:

1. Remove line continuations (.../)
2. Use constants, UNKNOWN_REGION and UNKNOWN_SHAPE for the error messages.
3. Move error handling into the .classify method and use guard conditions to raise these errors.
4. Remove extra variable, regional_shapes, that doesn't provide value.
Line is too long. [89/80]