Clean User

Remove self.
Use unless instead of if !
Use . instead of :: for class methods
Remove explicit return
Use each instead of for
Use inline if
Extract UserInfoRequestSentAlert alert types

Extract UserInfoRequestSentAlert alert types to ALERT_TYPES constant.

Useful for tests and forms (access with
UserInfoRequestSentAlert::ALERT_TYPES) and gives more meaning to what
the array contains
Group TrackThing macro methods
Group TrackThing class methods at top of file
Use self. for TrackThing class methods
Clean TrackThing

Use inline if
Remove explicit return
Use string interpolation
Use unless instead of if !
Remove self.
Use . instead of :: for class method calls
Extract hashes in TrackThing#params to methods

Use private methods to make TrackThing#params easier to read and ready
for dynamic method calling based on the track_type
Dynamically call params hash for TrackThing#params

Easier to add params now; just add TRACK_TYPE_params method which
returns the hash you want.

Uses more idiomatic ||= instead of if @params.nil?
Refactor TrackType types and mediums to constants
Use where syntax for TrackThing.find_existing

Faster (0.2ms vs 9.3ms)
Shorter line length
Non-deprecated syntax
Extract descriptions in to TrackThing::TRACK_TYPES

Makes TrackThing.track_type_description easier to understand and easier
to add new track types along with a description.
Group PublicBody callbacks and macros at top
Remove extra newlines