Cast resource names to symbols

Usually the resource name will be indexed by a symbol when accessed directly, however, initialized with a string. Instead of forcing people to initialize as a symbol and run into errors that the resource doesn't exist, let's just enforce symbols.

This does make it impossible to use an object as a resource name, but I think that's cool.

@csfrancis @fw42