Project Collaboration Tools
I wouldn't go with somebody's web based anything.  Do you really want to trust the life of your company to some random schlubs running a web site?

I'd set up the tools I like inside my company's network, with no outward facing services at all.  Then, all of the folks working remote get a VPN login that gets them inside of my network where they can use my tools.


Share source code through a versioning system. Git would probably work best given the distributed nature of your setup.  There's a special little spot in hell (where the fire burns hotter and the demons are meaner) reserved for people who try to do software development by sharing files without a versioning system.  The devil personally handles those who use dropbox instead of a versioning system.
Use a good system for planning your tasks.  We use Jira, and it works well enough.
Find a good project management program to keep track of requirements and progress.  Let me know if you find one.  We don't have one where I work, and we've never found one.
You need a system to track support calls.  We have one that we use, and it is sort of OK.  Can't recommend it because it is a German product and is only available in German.  It isn't really all that whoopy anyway.
Use a chat system internally.  When one developer or engineer needs to ask another about technical stuff, a chat works better than email.
I use Github for some of my personal projects, and that works well enough - for the small stuff I do at home.  I wouldn't want to use it at work.  It just doesn't have what it takes to handle what we work with.  We had around a thousand support calls and finished like 2000 tasks over the last year.  From my personal experiences with Github, that would have been no fun at all.
Integrated solutions are great, until you run up against some limitation that you can't live with - but then you can't get out if it because all of your data and history are in some propietary system and you can't get out of it.  Having a bunch a independant systems is a pain, but your data is in your hands and you can move it to a new system if you must - or bite the bullet and, for example, replace your chat system and just take the loss of the history (but only for the chat rather than everything you had tied up in the integrated system.)




That's my take on the subject.  I expect this question to be closed shortly as too broad or too opinion based.  Opinions are about all you can get in answer to the questions you've asked.