Optimized and refactored list2text, text2list, and replacetext.

- Replaced dd_list2text with my own nitrous-fueled implementation.
Changes:
- Replaced text2list with slightly modified version of the old replacetext.
- Removed splitstring.
- Replaced all uses of dd_list2text and splitstring with list2text and text2list respectively.
- Removed Russian from the station blueprint code.

Note:
- text2list() loses its ability to generate a list of characters when given an empty delimiter.  Can be re-added later if necessary.
- list2text() implementation uses some preprocessor macros for token replacement.  Don't even dare to remove them.

Benchmark: (Using the code that follows.)
- dd_list2text: 13.0s - 13.1s Avg
- list2text: 0.0s - 0.1s Avg

```
client/verb/RecordAllTypes()
	var/t = world.timeofday
	var/s = list2text(typesof(/datum), ";")
	world << "[(world.timeofday - t) / 10] Secs"
```