Remove 'switch' in favor of dictionary lookup

This changes how API methods are found and called inside the plugin. A
dictionary lookup should be slighly faster, especially when lots of
calls to _spAPI are happening.

In addition, some other tweaks to the internals have been made:

- Calling a non-existent method now throws the new SpritelyException
  type.
- Some of the code that depricated methods rely on has been further
  sequestered inside those methods.
- Deprication methods should be more reliable.