Support #FFF, FFF hex string formats; outError instead of NSAssert

@kconner @prachigauriar please review
If you do go with this approach, you need to *add* it to the existing interface. There’s code that uses the existing method that would break if you simply replace this. Have the existing method invoke this one with a nil error parameter.