LPS-45229

Hey Ray,

I hope you arrived home safely:) This PR is the 2nd run for the same issue, if you remember @leventehudak already created a fix for removing invalid portlets from the list that the LayoutTypePortlet.getAllPortlets() returns. Unfortunately it caused a lot of huge regressions (it seems we relies on the fact in a lot of places the PortletLocalServiceUtil.getPortletById(companyId, portletId) creates a new fake portlet object if it doesn't find one). Now this fix is a bit less strict, so it uses this previously mentioned getter and not the strict one, but tries to filter the results by their isUndeployedPortlet attribute, because this is the only attribute we can identify these in-memory portlet objects created by the getter. However I don't think it is the best solution, and I am worried about the possible regressions as well. 

Could you please take a look on this fix?

thanks,
Daniel