Fixes and changes discovered while testing

I removed some trailing spaces, and fixed a missing include (`<algorithms>`) which caused a build failure on VS2013. That fix will likely require you to rebase your pull request against my master branch after you merge this pull request.

I also changed the return type of `list_ports` to `vector<array<string, 3> >` from `vector<vector<string> >`. I think this is better then the nested vector because the main vector will always contain three item tuples. Another option would be to return a vector of structs which have three fields. This might actually be the best solution, but this is all the time I had to test.

I also added a few search paths (`/dev/tty.*` and `/dev/cu.*`) for serial port discovery on OS X.

I tested the pull request on OS X 10.9 and Windows 8.1 with VS2013.