Add build name patterns for easy use with complex server environments

I created this patch to fix a problem that we had with a 3-server load-balanced production environment. The problem is that with the MD5 names for builds you might get errors loading things. This is because one server might serve the HTML while the next serves the CSS. Yet both have different MD5 build hashes for the collections because they built the files separately.

At first I just tried committing the "app/storage/meta/collections.json" file along with the alternate build directory. But that didn't work. That is because sometimes the server would want to rebuild the collections and do it automatically.

So instead I came up with a build name pattern solution. Whereby the build name would consistently follow a pattern. That way it would be the same across all servers in the live environment.

Now I know that other people might be just fine with the default behavior. So I designed it to generate the names the way they used to be generated by default and then have my way as an optional config parameter they can set.
The OCD part of me wanted to reformat the entire project and follow all of the PhpStorm recommendations. But the practical and reasonable part of me finally took over again.