Keywhiz has inconsistencies in filename enforcement
As evidenced by this output:

```
keywhiz.cli describe secret --name shh.2016-01-26T23:49:27Z.key
Exception in thread "main" java.lang.IllegalArgumentException: Invalid name, must match ^[a-zA-Z_0-9\\-.]+$
    at keywhiz.cli.commands.DescribeAction.run(DescribeAction.java:58)
    at keywhiz.cli.CommandExecutor.executeCommand(CommandExecutor.java:141)
    at keywhiz.cli.CliMain.main(CliMain.java:68)
```

This secret was added via the automation API and otherwise is served and is displayed correctly.

diff --git a/cli/src/main/java/keywhiz/cli/Utilities.java b/cli/src/main/java/keywhiz/cli/Utilities.java
index 0871d598..2e1e6895 100644
--- a/cli/src/main/java/keywhiz/cli/Utilities.java
+++ b/cli/src/main/java/keywhiz/cli/Utilities.java
@@ -17,7 +17,7 @@ package keywhiz.cli;
 
 public class Utilities {
 
-  public static final String VALID_NAME_PATTERN = "^[a-zA-Z_0-9\\\\-.]+$";
+  public static final String VALID_NAME_PATTERN = "^[a-zA-Z_0-9\\\\-.:]+$";
 
   public static boolean validName(String name) {
     // "." is allowed at any position but the first.
diff --git a/cli/src/test/java/keywhiz/cli/UtilitiesTest.java b/cli/src/test/java/keywhiz/cli/UtilitiesTest.java
index 9788e8c1..d61d3a17 100644
--- a/cli/src/test/java/keywhiz/cli/UtilitiesTest.java
+++ b/cli/src/test/java/keywhiz/cli/UtilitiesTest.java
@@ -46,7 +46,7 @@ public class UtilitiesTest {
     assertThat(validName("bad\\tI-am-secret.yml")).isFalse();
 
     List<String> specialCharacters = Arrays.asList("&", "|", "(", ")", "[", "]", "{", "}", "^",
-        ";", ",", "\\\\", "/", "<", ">", "\\t", "\\n", "\\r", "`", "'", "\\"", "?", ":", "#", "%",
+        ";", ",", "\\\\", "/", "<", ">", "\\t", "\\n", "\\r", "`", "'", "\\"", "?", "#", "%",
         "*", "+", "=", "\\0", "\\u0002", "\\000");
 
     for (String name : specialCharacters) {
['cli/src/main/java/keywhiz/cli/Utilities.java', 'cli/src/test/java/keywhiz/cli/UtilitiesTest.java']