[#5502] ticket:462 Prevent adding tools multiple times

  Added max_instances attribute which specifies the maximum number of
tools of this type can be added to the project
[#5502] ticket:462 Fixed tests to check properly installed tools
[#5502] ticket:462 Added test to check installation limit of tools
[#5502] ticket:462 Updated docstings for Application
[#5502] ticket:462 Increase default max instances for apps that could have multiple instances
[#5502] ticket:462 Fix installable check
[#5502] ticket:462 Fix test failing due to new default instances limit
[#5502] ticket:505 Removed unnecessary _intallable_tools attr
[#5502] ticket:505 Added test for install app method
[#5502] ticket:505 Fixed test
[#5502] ticket:505 Server-side validation of installation limit
[#5502] ticket:505 Check `installable` instead of `max_instances > 0`
[#5502] ticket:505 Use real infinity, instead of arbitrary 30
[#5502] ticket:505 Get rid of limited_tools login

Since we already have to create an instance of App, in order to verify
if tool is installable, limit_tools logic isn't necessary anymore.
[#5502] ticket:505 Fix typo
[#5502] ticket:505 Fix test

Failing due to change installable from class attribute to property.
App.installable returns property object, which always evaluates to True,
must access installable property always through App's instance.