Adding support for fixed-width floating-point and integer array values.

As per issue ros/ros_comm#400.
I believe that is what's intended (or at least what I intended :) ). If you had a covariance matrix that had all values of 999.11, and then they all went to 1000.11, then if "numeric width" meant "digits after the decimal point," then the entire matrix would shift, thus defeating the purpose of the PR. The way it works at the moment is to simply truncate the number after it's been converted to a string, so if you tell it you want a width of 2, you're going to get 2 characters (1234.5678 becomes 12). 

Having said that, your other point is correct, and if I'm just truncating the string, there's really no reason for me to be applying %Nf or %Nd. That logic was a remnant of my original approach, sorry.

Let me know what behavior you'd like to see and I'll fix it.