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

@kconner @prachigauriar please review
Isn’t this regular expression equivalent to `^#?[0-9a-f]{3,6}$`? You don’t actually want to allow for the 4, 5 cases, right?