Addressed @justinfagnani's comments + added "amortized" where needed (for the single insertions, since it depends on `List.add`)