KinematicsBase support for multiple tip frames and IK requests with multiple poses

This PR only modifies KinematicsBase functionality to make review easier, though changes will be needed elsewhere in robot_state and moveit_ros to enable full non-chain IK support.

This introduces 3 new functions that optionally allow multiple tips and poses to be passed into KinematicsBase:

``searchPositionIK()`` - allows a vector of poses to be passed in
``setValues()`` - allows a vector of frame tips to be passed in
``initialize()`` - allows a vector of frame tips to be passed in
``getTipFrames()`` - returns a vector of tips instead of just one

The old ``std::string tip_frame_`` member variable is a bit messy in that we cannot remove it without breaking older code like generated IKFast solver code. Thus, this variable must remain in for the time being. The results in a little bit of duplicate information if you are using the IK solver in the normal case of a chain solver in that your tip frame name is saved in both the string and in the vector. I've done my best to document the deprecated status of this variable throughout the code and in the future I think it should be removed. 

I have tested these modifications against KDL, IKFast, and our custom full body IK solver.

The following PRs depends on these changes:
[Allow planning groups to have more than one tip](https://github.com/ros-planning/moveit_ros/pull/431)
[Allow joint model group to have use IK solvers with multiple tip frames](https://github.com/ros-planning/moveit_core/pull/155)