Refactoring to use the api as an instance variable.

This allows us to swap in an alternative API.
Also factored out XML parsing into ProfileParser and removed shoulda