Add new translate function to include accents and other latex macros in symbol names

This commit adds the ability to create more complex symbol names with accents, bolds, etc., and still have them translated into reasonable latex on printing.  This is inspired by the old `latex_ex` function from the `galgebra` submodule, from the current release version, but not the dev version.  For example, some times I want the vector `L` and its corresponding unit vector to both be defined, and possibly even distinguished from some scalar `L`.  I can do something like the following:

```python
L, Lvec, Lhat = symbols('L, Lvec, Lhat')
```
When these are printed to latex, they will just be strings of italic letters.  The alternative would be something like

```python
L, Lvec, Lhat = symbols(r'L, \vec{L}, \hat{L}')
```
But when these are printed to non-latex things, this comes out looking terrible.  For example, with the `ccode` printer, this would give invalid C code.

With this patch, a symbol name like `Lhat` gets converted to `\hat{L}` when printed to latex, without interfering with other sympy functions.  So this patch gives the best of both worlds for latex and ccode printing, for example.

The list of recognized macros is stored in the new `accent_keys` list.  Multiple accents can be combined, as in the symbol name `Lhatdot`, which becomes `\dot{\hat{L}}` in latex, while `Ldothat` becomes `\hat{\dot{L}}`.  Also, because some people like CamelCase variables, names like `LDotHat` are processed appropriately.  (In fact, any form of capitalization, such as all caps, is accepted.)