Const correctness for CustomSystems and Factions

This makes ```CustomSystems``` and ```Factions``` const-correct (almost).

There is only one place in ```src/LuaStarSystem.cpp```, where I had to use ```const_cast```:

```C++
LuaObject<Faction>::PushToLua(const_cast<Faction*>(s->GetFaction())); // XXX const-correctness violation
```

In ```LuaFaction.cpp``` we only use ```const Faction*``` now, so I think it is safe. I would also like to get rid of this place, but it seems that the Lua wrapping code is completely const-less and I'm too unfamiliar with this part of the codebase to write the correct incantations.