Ensured $.fn.spin isn't overwritten if it already exists.
Spinner now uses a presets.
Ensured plugin doesn't break down if server responds with empty data (ie.. status code 200 but not json data chunk).