Remove getBehavior method and change with behaviors() method to return the behavior registry instead of an array of loaded behaviors.

This brings the behaviors API closer to the associations API.
Allow for unloading, then reloading a behavior (or loading a different behavior) without causing method/finder map exceptions.

This also takes into account unloading of a behavior and then trying to call one of the removed behavior's methods.
Merge pull request #3500 from dakota/3.0-behaviors

3.0 behavior registry updates