fixed bug when appending to an empty string (reserve multiplied 2 * zero capacity), shortened operator+ code, added new test cases